Upgrading Odoo 16 to Odoo 19: What It Really Costs a UAE Business
"Upgrading Odoo 16 to Odoo 19" sounds like one project. It is really three: three annual major-version jumps stacked into one migration, each with its own breaking changes underneath. I get asked about this by UAE businesses that went live on Odoo 16 and are now watching their support window close. The question is always what this will cost, and the honest answer is that the version jump itself is close to free. What actually costs money is everything you built on top of standard Odoo since go-live. Here is the distinction I walk every client through, and how I think about timing it.
Two upgrades hiding inside one project
Odoo's own documentation defines an upgrade simply: moving a database from an older version to a newer supported one, "e.g., from Odoo 16.0 to Odoo 18.0." That covers exactly one thing — your standard applications and your data. Odoo's Upgrade Team converts both automatically, and under Odoo Enterprise that conversion is free, "including any support required to rectify potential discrepancies in the upgraded database."
Your customisations are a separate matter. Odoo defines a custom module as "any module that extends the standard code of Odoo and that was not built with the Studio app," and splits responsibility accordingly. Studio work is covered by the SLA as long as Studio is still installed and subscribed; work under an active maintenance-of-customisations contract is covered too. Everything else — modules built in-house or bought from a third party without that contract — is excluded, and the database "cannot be upgraded until a version of your custom modules is available for the target version of Odoo." That is a hard technical gate, not a formality: no compatible custom code, no upgrade.
Why the version jump usually isn't the hard part
The mechanical half is well handled: request a test database, and Odoo's platform rebuilds a copy on the new version. The same six drivers that size a fresh Odoo implementation in the UAE — module scope, customisation depth, data, integrations, training and industry complexity — size an upgrade too, and the database conversion barely moves that needle.
What does move it is the gap. Odoo says it plainly: "the smaller the version gap, the easier the upgrade should be." Every major release touches fields, views and methods; Odoo's own guidance for customised databases names the breakage — renamed or removed fields, moved views, methods that no longer exist. Cross three major releases at once, as a 16-to-19 project does, and custom code survives three rounds of that, not one. An industry-specific build like the 18-module university management system I designed carries far more of that weight than a close-to-standard trading company, because more of it is custom by design. Odoo also supports each major version for three years, plus a grace period to finish a mandatory upgrade after — so staying on 16 has a shelf life.
The test-upgrade workflow
Request, then port your own code
Odoo's process is consistent regardless of hosting: request an upgraded test database, and if you carry custom modules, freeze new development on them and get their source code installable and tested on an empty copy of the target version before touching real data. Only once that baseline works do you test the custom code against the upgraded copy of your database.
Validate, rehearse, then go live
The test database is deliberately neutered so nothing leaks out while you work: scheduled actions are switched off, outgoing mail is disabled, and payment providers and delivery carriers are reset to their test modes. That is your space to break things safely. Odoo's own checklist is a good baseline — reports, views, mail templates, saved filters, data exports, plus every integration and cross-app workflow you rely on — and I extend it with end-to-end runs: quote to cash, purchase to payment, the reports finance signs off on every month. Request a fresh test database and repeat as often as needed; it costs nothing. Only when confident do you request the production upgrade, which takes the live database offline for the duration and, once finished, cannot be reverted — why a full rehearsal the day before matters most.
The rule I give every client before we set a date: audit every custom module and third-party app against the target version first. If that list comes back clean, 16 to 19 is mostly a scheduling exercise. If it doesn't, you have found the real project — before booking a go-live date, not after.
Data cleanliness — the cheapest step nobody does
Cleaning is explicitly outside the upgrade SLA: Odoo's list of excluded services names "the cleaning of pre-existing data and configurations." Dead contacts, disused fields, half-finished automations and years of configuration nobody remembers the reason for all carry through the conversion faithfully, because that is what an upgrade does — move what is there. The cheapest point to deal with any of it is before you request the first test database, not after. Same advice I give on fresh implementations: clean data is quick, dirty data becomes a project of its own.
Third-party apps: who is actually maintaining them
Every marketplace or OCA app in your database needs its own version-compatible release before your upgrade can complete, and Odoo's SLA is explicit that modules "created in-house or by third parties, including Odoo partners" are not covered. If the developer behind an app has moved on, or hasn't kept pace with Odoo's yearly release cycle, you inherit a rebuild, not an upgrade. Before agreeing to any date, I list every installed app and check whether the target version exists for it. An app with no roadmap for Odoo 19 is a budget line, not an assumption.
Retraining and UAT
Training is the third item the SLA leaves out by name. Even a mechanical conversion changes views, defaults and small behaviours your team has muscle memory for, and Odoo's own warning is direct: skip real testing and you risk users failing to adjust to the changes, not just bugs. The fix is the one I give on every implementation — get real users clicking through their real daily work on the test database, not just IT confirming the data migrated. The software rarely fails at this stage; adoption does.
Should you upgrade now, or stay on 16?
The right trigger is not "19 is the newest number." It is whether a version between here and there solves a problem you actually have. In my experience, legitimate reasons to move now include a specific feature your team needs — what's actually new in Odoo 19 is where I would start checking that against your own list — a support window that is closing, or heavy customisation that gets more expensive to carry the longer you wait. For UAE businesses, add your compliance calendar to that list: aligning the move with your VAT configuration or your e-invoicing readiness timeline is a legitimate reason to move now, so you are not reconfiguring tax logic and a new Odoo version in the same month.
None of that applies to every business. If your Odoo 16 system is stable, your team is productive, and nothing on the Odoo 19 feature list addresses a gap you feel, there is no obligation to move this quarter. Just do not mistake that for an indefinite pass — the support clock is still running, and the longer you wait, the larger the eventual version gap gets.
This article explains how Odoo's upgrade mechanics work and the factors that drive cost, based on Odoo's official upgrade documentation and my own project experience — it is not a quote. Every database's customisation footprint is different; an audit of your specific system is the only way to turn this into a real number and timeline.
Frequently asked questions
Is upgrading from Odoo 16 to Odoo 19 one upgrade or three?
Does Odoo charge for the database upgrade itself?
Will our custom modules and third-party apps just carry over?
How long does an Odoo 16 to 19 upgrade actually take?
Should a UAE business upgrade to Odoo 19 now, or wait?
Related reading
Sitting on Odoo 16 and weighing the move?
I'm Muhammad Salman Ali Khan, an Odoo Techno-Functional Consultant in Dubai and Head of Projects at Techbot Information Technology LLC, a UAE Odoo partner — 10+ years, 100+ implementations, certified across Odoo v13, v14, v15, v16, v18 and v19, and I presented Odoo 19's new features at Odoo Experience 2025 in Brussels. Tell me about your current database and customisations, and I'll give you an honest view of what moving it to 19 actually involves — at no cost.
Get a free business evaluation