Odoo doesn’t support a simple in-place upgrade between major versions — moving from one version to the next is a genuine migration, with real technical mechanics behind it. Our Version Upgrades guide covers how to plan and run that process; this is about what’s actually happening technically underneath it.
Why Odoo versions can’t just be swapped in place
Each major Odoo version can include database schema changes, renamed or restructured fields, deprecated APIs, and changes to how core modules behave internally. A database built on Odoo 16’s schema isn’t directly compatible with Odoo 19’s — it needs to be transformed, not just pointed at newer code.
How the technical migration actually works
Odoo’s own migration tooling (and the open-source OpenUpgrade project) handles the database transformation — converting your existing data structure to match the new version’s schema, migrating field values, and adjusting relationships that changed between versions. This runs against a copy of your database, not your live production data, precisely because it’s a genuinely complex transformation with real risk if something goes wrong.
What happens to custom modules and customizations
Custom code that extends core Odoo functionality needs to be reviewed against the new version’s APIs — a customization built against Odoo 16’s core methods may reference something renamed or restructured in Odoo 19. This review and adaptation work is often the single largest variable in how long a migration actually takes, more than the core data migration itself.
Third-party app compatibility
Apps installed from the Odoo marketplace or built by other developers need their own version compatibility confirmed — an app that works fine on your current version may not have a compatible release for the target version yet, which is worth checking early rather than discovering after the migration is underway.
Why testing in staging matters so much here
Given how much changes under the hood, testing the migrated database in a staging environment — checking that data looks correct, custom code still works, and key workflows function as expected — isn’t optional. See our Migration Testing guide for what a thorough testing pass actually covers.
Frequently Asked Questions
Can I skip versions during a migration, like going from Odoo 15 straight to Odoo 19?
Odoo’s migration tooling generally supports multi-version jumps, though the more versions you’re crossing, the more changes accumulate to review — a longer gap since your last upgrade usually means a bigger migration project.
How long does a technical version migration typically take?
This depends heavily on custom code volume and third-party app usage — a standard-configuration instance can migrate in days, while a heavily customized one can take weeks of review and adaptation.
Does migrating versions require downtime?
The migration itself runs against a copy of your data, so your live system keeps running until you’re ready to cut over — the actual cutover window can be quite short with proper planning.
Get the Technical Migration Handled Correctly
Version migration involves real technical complexity beneath the surface — worth getting right rather than discovering issues after cutover. Talk to Mediod Consulting about migrating your Odoo instance to a newer version.

