To move an old Odoo database (Odoo 10, 12, 14 or 16) to Odoo 18 or 19 you have three routes: Odoo's own upgrade service, the community OpenUpgrade scripts, or a fresh implementation with selective data migration. Enterprise customers get the Odoo upgrade service free for standard apps, Studio customisations and code under a maintenance-of-customisations subscription. Community users usually use OpenUpgrade, which upgrades one major version at a time. When the old database is heavily customised or its data is poor, re-implementing is often cheaper than upgrading.
This guide is for the person who has to decide. That might be an owner, a finance lead or a CTO with an Odoo version that is several years old. It explains what each upgrade route covers and what it leaves out, according to Odoo's documentation. It then gives a decision table, the factors that drive effort and cost, and a checklist to use before switching production. Every Odoo rule quoted here comes from Odoo's official upgrade documentation, reviewed on 22 September 2026. Odoo can change these terms, so check the page again before you sign anything.
If you need the command-level steps instead, our Odoo 18 database migration walkthrough covers them. This page covers the decision that comes before those steps.
Do you have to upgrade an old Odoo version?
On your own servers, no. Odoo states that on-premise you "can stay on the same version indefinitely", though it does not recommend it. The costs of staying rise over time:
- Support window. Odoo says each major version is supported for three years. As of September 2026 that means Odoo 16 and every older version are outside support, and Odoo 17 reaches its third year in late 2026.
- Odoo Online and Odoo.sh are different. On Odoo Online, a database on a major version must be upgraded every two years, and one that is not upgraded by the deadline is upgraded automatically. On Odoo.sh, you get another two years after the three-year support window ends.
- The gap gets wider. In Odoo's words, "the smaller the version gap, the easier the upgrade should be." Every year you wait makes the move bigger.
So the first decision is rarely whether to move. It is which route, and when.
What are the three ways to upgrade Odoo?
| Route | Who it is for | What it covers | What it does not cover |
|---|---|---|---|
| Odoo upgrade service | Odoo Enterprise subscribers, on Odoo Online, Odoo.sh or on-premise | Free upgrade of all standard apps; Studio customisations while Studio and the subscription are active; custom code covered by a maintenance-of-customisations subscription | Cleaning existing data; in-house or third-party modules with no maintenance contract (including modules written by partners); training on the new version |
| OpenUpgrade (OCA) | Odoo Community users, or anyone who wants to run the upgrade themselves | Open-source migration scripts for Odoo's standard modules, maintained by the Odoo Community Association under AGPL-3.0 | Custom and third-party modules, which have to be ported separately; each major version is a separate step (12 to 13, 13 to 14, and so on) |
| Re-implement and migrate data | Heavily customised or messy databases, or a business that has changed a lot since go-live | A clean Odoo 18/19 set-up built for how you work now, with master data, open balances and open documents imported | Full transaction history in the new database (the old one is usually kept read-only for look-ups and audits) |
Sources: Odoo 19 upgrade documentation (SLA section) and the OCA OpenUpgrade repository, both reviewed 22 September 2026.
One limit catches many buyers. Odoo's upgrade does not switch editions, so it will not move you from Community to Enterprise. It also does not change your hosting type or migrate you from another ERP. If you want to move from Community 14 to Enterprise 18, the edition change is a separate project. Our Odoo Community vs Enterprise guide covers that choice.
Which upgrade route fits your situation?
| Your situation | Usually the right route | Why |
|---|---|---|
| Enterprise, mostly standard apps, a few Studio fields | Odoo upgrade service | The work that has to be done is covered by your subscription. Your effort goes into testing. |
| Enterprise with several custom modules and no maintenance contract | Odoo upgrade service plus a partner to port the modules | Odoo upgrades the standard data. The database cannot be upgraded until your custom modules exist for the target version. |
| Community, one or two versions behind, little custom code | OpenUpgrade | A short step chain with few custom modules to port. |
| Community, five or more versions behind (for example 10 or 12 to 18) | Compare OpenUpgrade with re-implementation before you choose | Each version is a separate run with its own testing. Past a certain gap, a clean build can take less effort. |
| Data you do not trust: duplicate products, unreconciled accounts, dead workflows | Re-implement and migrate data | An upgrade carries the old problems into the new version. Odoo's service explicitly excludes data cleaning. |
| You also want to move from Community to Enterprise | Treat it as two decisions | An upgrade never switches editions. Plan the edition change and the version move together, not by accident. |
What drives the cost of an Odoo version upgrade?
Upgrade quotes vary widely because they depend on the database, not the version number. Ask any vendor, us included, to price these six factors separately:
- Custom modules. The biggest variable. Each in-house or third-party module has to be rewritten or replaced for the target version. Before you ask for quotes, list every installed module and note which ones are not part of standard Odoo.
- Version gap. OpenUpgrade runs one major step at a time, and each step needs a test pass. Odoo's own service can go straight to the target version, but a large gap still means more changed screens and workflows for your team to learn.
- Data quality. Cleaning is not included in Odoo's upgrade service, so someone has to budget for it.
- Integrations. Every connector (e-commerce, payment gateway, shipping, Tally, bank feeds) has to be retested and often updated.
- Testing time for your people. Odoo describes testing the upgraded database as "essential". Your finance and warehouse users are the only people who can confirm that their day-to-day work still runs.
- Training. This is not covered by Odoo's upgrade service. Plan it for any team whose screens change.
A hypothetical example, for illustration only: a distributor on Community 12 with four custom modules and a Shopify connector has six OpenUpgrade steps to 18, four modules to port and one integration to rebuild. The same business, re-implemented on Odoo 18, has no step chain, but it has to re-create its configuration and import open balances. Whichever route has fewer module rewrites and fewer test cycles is usually the cheaper one. Asking for both estimates side by side is the fastest way to find out.
How does the Odoo upgrade process work?
According to Odoo's documentation, the upgrade service follows the same sequence on every hosting type:
- Request an upgraded test database. On-premise you use the upgrade platform or its command-line script; Odoo.sh and Odoo Online have built-in options. You can request more than one test database.
- If you have custom modules, upgrade their source code to the target version. Odoo recommends doing this in parallel with step 1.
- Test the upgraded database thoroughly and report issues to Odoo support as "an issue related to my future upgrade".
- Upgrade production. The database is unavailable while the upgrade runs.
Two details are easy to miss. First, the test database is "neutralised": scheduled actions and outgoing mail are disabled, so automatic reminders and emails will not fire during testing. Second, on-premise the upgraded copy comes back without your production filestore. You have to merge the filestore before testing, or attachments and images will appear to be missing.
What to check before you switch production
Use this as the acceptance checklist for any route. Do not accept an upgrade until every line has been signed off by the person who owns that area:
- Trial balance, receivables and payables ageing match the old database on the cut-off date.
- Stock on hand and inventory valuation match, by warehouse.
- Open sales orders, purchase orders, invoices and manufacturing orders all came across, with the right status.
- Every custom module installs and passes the workflows it exists for.
- Each integration has processed at least one real test transaction end to end.
- Scheduled actions and outgoing mail are re-enabled deliberately after go-live, not left off.
- Access rights have been reviewed. New versions add menus that users may not have seen before.
- A rollback plan exists, with the old database kept read-only.
For the data side of any move, including item masters, opening balances and history, our ERP data migration checklist goes further.
When to bring in an Odoo partner
If you are on Enterprise with only standard apps, you may not need a partner at all: Odoo's upgrade service and your own testing can be enough. A partner earns its fee when there are custom or third-party modules to port, integrations to rebuild, a Community-to-Enterprise change, or a re-implementation. When you compare vendors, ask each one to list which modules it will port, which it will replace with standard features and which it will retire, and to price your testing time separately. Braincuber's Odoo migration services start with exactly that module-by-module review.
Not sure which route fits your database? Send us your installed-module list and current version, and we will tell you which modules block an upgrade and which route looks cheaper. Talk to an expert.
Frequently asked questions
Can I upgrade directly from Odoo 12 to Odoo 18?
With Odoo's upgrade service (Enterprise), you request the target version directly. With OpenUpgrade (Community), each major version is a separate step, so 12 to 18 takes six consecutive upgrades.
Is the Odoo upgrade free?
For Odoo Enterprise, upgrading standard apps is free under the subscription, as are Studio customisations and code covered by a maintenance-of-customisations subscription. Data cleaning, uncovered custom or third-party modules, and training are not included.
Does upgrading move me from Community to Enterprise?
No. Odoo's upgrade does not switch editions, change hosting type or migrate data from another ERP. Each of those is a separate project.
Why can't my database be upgraded yet?
Usually because it contains custom modules that do not yet exist for the target version. Odoo will not upgrade a customised database until those modules have been ported.
Should I upgrade or re-implement Odoo?
Upgrade when the database is mostly standard and the data is sound. Consider re-implementing when there are many custom modules, a large version gap or data you do not trust, because the upgrade service does not clean data.
Founder and CEO of Braincuber. Scopes Odoo, AI, and cloud projects for growing brands in India and abroad. Takes every founder call personally — no SDR layer between buyers and the people building the system.
