Back to achievements
CompanyOdooPythonPostgreSQLMigration

Enterprise ERP migration from Odoo 16 to Odoo 19

Solo migration of a full ERP used by 30 employees, including 20 custom modules and hundreds of Studio customizations.

01

Presentation

The migration from Odoo v16 to v19 is a large-scale project I led single-handedly at 1UP Distribution, an international trading company for pop culture products and gaming accessories. The Odoo ERP is the company's central tool, used daily by all teams (sales, accounting, logistics, management). The migration was necessary because version 16 was reaching end of support and the company wanted to benefit from new features in recent versions, including AI integration and improvements to existing applications.

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 all existing customizations: about twenty custom modules I had developed, plus hundreds of customizations made by users through Odoo Studio. The latter are not version-controlled in code — they're only stored in the database — making them particularly delicate to handle.

Next, I identified third-party modules already migrated by their authors and those requiring manual intervention. For each custom module, I adapted the code to the new version.

I worked on an Odoo.sh staging environment that copies production data into the new version, allowing me to test each fix in a realistic context. Each fix then had to go through the Odoo.sh migration process.

I dedicated significant time to understanding v19's new features and changes, then exhaustively testing the ERP to identify regressions requiring development.

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 work and went well. The time needed to ensure 90% of the ERP could be migrated without bugs or data loss. A few regressions were fixed progressively during the month following production deployment. The ERP now runs on a supported version with new features available (AI, improvements to existing applications), benefiting all users.

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.