From our projects
Our six current Enterprise projects take Odoo 16 and 17 to Odoo 19, through v18 — the same v18→v19 step your upgrade starts with, one release short of v20. Track record ›
The case for upgrading now
v18 is supported today — that changes when Odoo 21 ships
Odoo officially supports its three most recent major versions. With v20 as the current release, that window covers v18, v19, and v20 — which makes v18 the oldest release still inside it. When Odoo 21 arrives, on Odoo's usual yearly cadence, the window moves to v19–v21 and v18 drops out of it — along with the security patches and fixes that come with being inside it.
It's also a chance to reconnect with a much larger, more active developer community — today's codebase draws far more attention than v18's does at this point.
What actually changes between v18 and v20
Frontend framework
Odoo's web client has continued moving further onto the OWL (Odoo Web Library) framework, replacing the older legacy JS widget system. Custom modules with frontend code written against the old system typically need real rework, not just a compatibility shim.
Python & PostgreSQL requirements
Minimum supported Python and PostgreSQL versions have moved forward across this range. If you're self-hosted, the infrastructure upgrade is a separate, parallel project from the Odoo upgrade itself — worth scoping before the migration, not discovered during it.
Module and API changes
Two major releases means two years of deprecated fields, renamed models, and shifted ORM conventions to account for. This is the bulk of the actual migration-script work for any custom module — not a single breaking change, but an accumulation of smaller ones.
New capabilities you'd gain
Beyond staying supported, two versions of feature development — deeper automation, AI-assisted tooling that v19 expanded and v20 pushes further, and refinements across manufacturing, inventory, and the website builder — become available the moment you land on v20, not something you have to opt into separately.
Community or Enterprise changes the path
Same version gap, two very different projects. Which edition you land on decides whether Odoo's own upgrade service carries the jump, or your migration scripts do.
Already on Enterprise? Then neither penalty applies — an EE to EE jump is the cleanest route there is, and your estimate reflects that.
Before you ask us
Questions about the v18 → v20 jump
The three that come up on every v18 call. Answered here so you don't have to book one to get them.
Something specific to your instance?Ask a human — no form gate. ›