Odoo Migration: Where to Start? A Complete Guide in 5 Steps
There are generally three types of migration:
Upgrading (version migration)
Upgrading from Odoo 16 to 17, or from 17 to 19, requires adapting the database schema and modules.
Odoo migration (Community to Enterprise)
Switch hosting providers (Odoo.sh, cloud, on-premise) without necessarily changing versions.
Migrating from an existing ERP system to Odoo
Import data from Sage, SAP, Excel, or another system into Odoo.
In practice, a real-world project often combines two or three of these types at once. This page provides an overview and directs you to the right guide.
1. Why and When to Migrate
Three signs that it's time to take action:
- the loss of optimal support for your version,
- the need for new features (including native AI since Odoo 19),
- performance drop related to the accumulation of data and old modules.
In addition, there is a new factor since 2025: the 25% surcharge applied by Odoo on the licenses of versions that are too old. Far from being a simple penalty, it is an incentive to migrate regularly - and it is better to understand it to choose the right moment rather than to suffer it.
To go deeper: 25% surcharge and new features
2. How does an Odoo migration work, concretely?
Behind every migration, there is a precise technical mechanism. Understanding what happens "under the hood" helps anticipate the efforts and risks.
With a migration partner
At e3k, it takes place in four phases:
1. The database transforms, it does not copy
Each new version of Odoo modifies the structure of its database: fields are renamed, tables are merged, data types change. It is impossible to import your data into a new version without transforming it beforehand — this is called schema adaptation.
2. Modules must be evaluated one by one
Your modules (standard, community OCA, or custom) do not automatically work in a newer version. For each one, we evaluate: has it become native? Is there a compatible version? Does it need to be migrated or recreated?
3. The migration first takes place on a test basis
We never operate directly in production. The technical migration is executed on an isolated copy of your database, which allows us to identify and correct errors before the big day. In practice, two to three test runs are common before achieving a clean migration.
Three data migration tools :
- Odoo Upgrade Service (officiel) : pour les clients Enterprise, automatise la migration des modules standards.
- OpenUpgrade (OCA) : outil open source pour les instances Community, nécessite une expertise technique.
- Custom scripts (ETL) : for complex cases, database merges, or migrations from another ERP.
4. The go-live is a planned operation
On the switch day, we freeze the old system, execute the final migration on the production database, validate the balances and the last invoices, and then open access to users. A rollback plan must be ready in case of unforeseen events.
As you can see, your involvement focuses on testing and some additional training. The bulk of the technical work is carried by us.
3. Your modules : the 3 cases
The real challenge of a migration often lies in the modules. For each one, we ask three questions that lead to three cases :
- Has the functionality become native? We abandon the custom in favor of the standard.
- Is there a community module compatible (OCA or App Store)? We purchase and install the updated version.
- Is custom development still relevant? We migrate it.
⚠️ Critical point : Custom modules do not migrate automatically. Each must be evaluated individually — this is often the longest and most expensive part of a migration. Anticipating it from the start avoids unpleasant surprises.
This sorting exercise, conducted during a comparative workshop, prevents dragging along old things and lightens your future migrations.
4. Data recovery
Your data is your most valuable asset. A successful migration starts with examining, cleaning up, and validating — a bit like moving where you sort before packing. On go-live day, we systematically check that the balances and the latest invoices have followed correctly, to ensure that no information is lost.
The principle: recover reference data and useful history, without necessarily transporting everything.
5. After the migration: adoption
A migration does not end at go-live: that is where the return on investment is realized. Some supplementary training targeted at what is changing, an internal super-user who becomes the liaison for their colleagues, and a post-go-live follow-up to adjust the final details make all the difference between a tool that is adopted and one that is bypassed.
To learn more: After the Odoo migration: managing internal changes, training, and adoption
Ready to take stock?
Before planning anything, here are the first five steps to take:
Identify your current version
and check if it is still under active support (Odoo 16 has been end of life since 2024).
Inventory your modules
Standards, community (OCA), and custom — each requires individual assessment.
Estimate the size of your database
and the complexity of your customizations.
Check your license expiration
The 25% surcharge applies to versions that are too old — anticipating it helps you avoid it.
Plan for a complete backup
Database + filestore (attachments, images) before any operation.
These five points are the starting point for any serious migration diagnosis.
Frequently Asked Questions
Here are some common questions about Odoo migrations.
If you are on an old version or your license expiration is approaching, yes.
An update applies patches or minor improvements within the same version. A migration is a change to a major version — it involves transforming the database, adapting the modules, and a complete testing phase. It is a full project, not just a simple click.
Yes, technically. The official Odoo Upgrade service allows it for standard modules. But each skipped version adds cumulative changes — especially to your custom modules. The greater the gap, the more complex and costly the migration becomes. It is recommended not to fall behind by more than two versions.
No — with good planning, the downtime is limited to the go-live moment (usually a weekend or a night). All the technical migration takes place beforehand, in a test environment isolated from your production.
Companies whose operations are scaling often consider replacing their accounting software to centralize all their management tools. Similarly, when the proliferation of third-party solutions and the accumulation of subscription fees become burdensome, adopting an integrated ERP system like Odoo can drastically simplify the technological ecosystem.
Key points to compare these two solutions: costs and accessibility, flexibility vs standardization, user experience and adoption, company size, etc.