The upgrade path: 15 → 16 → 17 → 18 → 19 → 20
Odoo can't jump straight across major versions; each one carries its own data migration scripts. Moving from Odoo 15 to Odoo 20 therefore means 5 consecutive hops. TechUltra Upgrades runs them back to back on a copy of your database, saves a checkpoint after each one, and resumes from the last good hop if something fails, instead of starting over.
What changes between Odoo 15 and Odoo 20
These are the framework changes your custom modules cross on the way. Each one is handled by our porting rules and reviewed by an engineer.
Arriving at Odoo 16 (2022)
- Web client moves to OWL 2; legacy widgets and field widgets must be rewritten.
fields_view_getreplaced byget_views; view-manipulation overrides break.
Arriving at Odoo 17 (2023)
attrsandstatesremoved from views: visibility rules become plain Python expressions on invisible/readonly/required.name_getdeprecated in favour of_compute_display_name.- Python 3.10 becomes the minimum runtime, so servers and dependencies need upgrading too.
Arriving at Odoo 18 (2024)
views renamed toacross XML views and actions.- Many JS patches and client actions need updating for the reworked OWL services.
Arriving at Odoo 19 (2025)
- SQL constraints move from
_sql_constraintsto declarativemodels.Constraintobjects. - ORM internals reorganised under
odoo.orm; imports and private API calls need updating.
Arriving at Odoo 20 (2026)
_sql_constraintsand_constraintsno longer supported at all, so un-ported modules silently lose their constraints.- Accounting: parent accounts replace account groups, account codes become optional, depreciation models replace asset models.
- AI agents that create and update records and connect over MCP; new offline mode for field users.
How TechUltra Upgrades handles this path
- Preflight checks for PostgreSQL version, hop images and upgrade scripts before anything runs.
- Custom modules detached during hops so the standard data migrates cleanly, then re-attached as ported Odoo 20 code.
- Auto-heal for known upgrade failures, such as bad XML-ID renames and orphan views, with automatic hop retry.
- Reconciliation of trial balance, stock valuation and receivables/payables against your Odoo 15 source.
- Engineer-assisted early hops: versions before 16 cross older framework changes which our team handles hands-on.
Should you upgrade Odoo 15 now?
Yes. Unsupported versions miss security patches, can't install current apps and get harder to upgrade with every release. Waiting one more year adds another hop and another round of breaking changes.