Enterprise ERP migration from Odoo 16 to Odoo 19
Solo migration of an ERP directly used by 19 internal users and indirectly affecting around 30 employees, with 16 custom modules and about 10 third-party modules to adapt.
Visual proof
Screenshots and demos from real projects.

Odoo 17 migration validation
Intermediate Odoo.sh migration step used to isolate incompatibilities before the final upgrade.

Odoo 18 migration validation
Validation step before the v19 branch, with progressive fixes on custom and third-party modules.

Successful Odoo 19 migration
Validation of the target Odoo 19 branch before the staging to production merge.
01
Presentation
The migration from Odoo v16 to v19 is a large-scale project I led single-handedly at 1UP Distribution. The ERP is directly used by 19 internal users and affects around 30 employees overall through Odoo, logistics, the B2B site, the corporate site, and related workflows.
02
Objectives, context and stakes
The main objective was to migrate the entire ERP to Odoo v19 without data loss and with minimal functional regression. The identified risks were significant: potential data loss, incompatible custom modules, unversioned Studio customizations likely to break, and downtime to minimize to avoid impacting business operations.
03
The steps — what I did
I started by listing existing customizations: 16 custom modules I built from scratch, about 10 third-party modules to fix, improve, or migrate, and hundreds of customizations made through Odoo Studio.
I worked on a realistic Odoo.sh staging environment based on production data. The switch to Odoo 19 happened on February 6, 2026, and the stable version was reached around 1 month later.
Two important incidents were also resolved during stabilization: recovery of mobile numbers removed by an Odoo change through migration scripts and cron jobs; recovery and reliability improvements for invoice margins through my dedicated module, making margin more reliable than before and fully automated.
04
The actors — interactions
I handled the entire technical side of the migration alone. My main interactions were with a colleague, the executive assistant, who knows the ERP very well at a functional level and understands the company's internal processes. Her business knowledge was invaluable for validating that migrated features matched actual usage.
05
The results
The migration took 6 months of preparation and the main post-switch stabilization lasted around 1 month. It secured an ERP directly used by 19 users, with 16 custom modules, about 10 third-party modules adapted, and several data incidents resolved. Odoo automations and workflow simplifications save users several minutes to several hours per day depending on the process.
06
After the project
Today, the ERP runs stably on Odoo v19. Users benefit from the new version's improvements and custom modules have been adapted. This migration also laid the groundwork for future updates, which will be simpler thanks to the documentation and migration scripts created during the process.
07
My critical review
If I had to do it again, I would more rigorously map the list of changes between versions and the business processes to test, to have fewer unexpected regressions after migration. A more structured acceptance document, validated with key users before the switch, would have further reduced the number of post-migration fixes.
08