Financial TimesAmericas' Fastest-Growing 2025
Certified PartnerOdoo Gold · Adobe Solution · Shopify Plus partnershipsOdoo Gold · Adobe · Shopify Plus partnerSee all
One business dayA senior architect replies to every inquiry · +1 (631) 897-7276Architect reply within one business dayLet's talkCall us
Inc. Regionals 2025Fastest-growing private companies in AmericaInc. Regionals 2025 honoreeSee awards
Americas' Fastest-Growing Companies 2025Recognized by the Financial TimesFT Fastest-Growing Companies 2025See the rankingRanking
4.8 / 5 on Clutch265 verified client reviews4.8/5 on Clutch · 265 reviewsRead the reviews
4.8 · 265 Clutch reviews
US United States

Odoo 16 to Odoo 18 migration: what changes and how we move you

Two releases of change in one upgrade. Odoo’s platform converts the standard database; everything on top has to clear what 17 and 18 altered. Brainvire inventories your Odoo 16, makes each module installable on 18, then proves it on a copy before a date is set.

OdooGold Partner
2,000+Brands served
95%Client retention
14+Years of experience
What it is

Moving a live database from Odoo 16.0 to Odoo 18.0 in one supported pass — Odoo’s own documented example of an upgrade. Odoo’s upgrade platform performs the technical conversion of the standard modules and data. Custom modules are the customer’s or partner’s job.

Who it is for

Teams still running Odoo 16.0 in production, especially those carrying custom modules, Studio changes or third-party apps nobody has inventoried since they were built.

Typical timeline

Brainvire plans a straight version upgrade at 3 to 8 weeks, and skipping a version puts you at the top of that band. These are our own planning figures, not Odoo published ones. With new scope, our implementation bands apply instead.

Typical team

A technical consultant who ports the modules, a functional consultant who owns the test script, a solution architect on the upgrade posture, and your application owner as counterpart.

/ Two versions behind

Why has the Odoo 16 upgrade waited this long?

Four reasons we hear, and none of them is the upgrade itself.

Support

The window has already closed

Odoo supports each major version for a fixed period and publishes the dates. Odoo 16 is now past the end of its standard support window, and waiting does not pause a clock that was never yours to set.

Distance

Two releases of change, in one pass

Everything Odoo altered in 17 and everything it altered in 18 arrives together. Odoo’s own note is that the smaller the version gap, the easier the upgrade should be, which is what keeps this one deferred.

Unknowns

Nobody has listed what is on top

Studio changes, custom modules, third-party apps, things edited in place. Odoo will not upgrade a database with custom modules until a version of them exists for the target release.

Rehearsal

The only test on the calendar is go-live

Without a test database and a run through the real flows, the first time anyone sees Odoo 18 holding your data is the morning it has to work.

Odoo Gold PartnerBest Partner North America 2025 FinalistOutstanding Customer SatisfactionOdoo 19

Trusted by enterprise Odoo teams worldwide

Bay Alarm MedicalTentAndTableFood Bank SingaporeAmerican Tire DepotEden TextileCadarPuma EnergySuper Asia FoodsUltimate ToysAjmal PerfumesPan HomeNike

/ Version to version

What actually changed between Odoo 16 and Odoo 18?

The upgrade crosses two release boundaries, so each row names the release it landed in and cites Odoo’s release notes for Odoo 17 or Odoo 18. The third column is our reading, not theirs.

AreaWhat changedWhat it means for your upgrade
Removed connectorsOdoo 18 removed the eBay Connector, and removed the Alipay, PayU Latam and PayUmoney payment providersA replacement is chosen and built before cut-over. The row that most often moves a date
Bank reconciliationOdoo 17 removed the manual reconciliation widget; lines reconcile silently unless a write-off entry is neededThe daily bank flow behaves differently. Finance re-tests it first
Transfers and routesOdoo 17 dropped the planned versus immediate transfer distinction. Odoo 18 fires push rules on validation and redesigned every default multi-step route around thatWarehouse flows are re-tested end to end. The pair most likely to surprise operations
Approvals and APIsOdoo 17 moved approval rules from client-side to server-side enforcement, so they now apply to API calls tooAn integration can meet a rule it never saw. Test connectors, not only screens
Close controlsOdoo 18 added a lock dates wizard that locks by journal type, plus a Hard Lock date with an exceptions mechanismA Hard Lock date cannot be changed once saved, so it is set late and deliberately
PaymentsOdoo 18 stopped payments creating an accounting move unless an outstanding account is set on the linked payment methodEvery payment method is checked for its outstanding account before anything is posted on 18
TaxesOdoo 17 put codes in every localization’s tax names, added a Tax Description field and made some fields unmodifiable once a tax is used. Odoo 18 made all standard sales taxes follow a company setting defining them as price-included or price-excludedOne decision at company level, then a check that every tax overriding it still behaves as it did
BudgetsOdoo 18 rebuilt budget management around analytic budgets: no more dates on budget lines, no more budgetary positions. Separate financial budgets compare against the profit and loss reportBudget structure is redesigned, not carried. Agree the new shape with finance before cut-over
StatementsOdoo 18 removed and merged the Follow-up and Customer Statement views and modules, and revamped the Partner Ledger to read like a customer statement that can be sent to customersReports, automations, saved filters and training material pointing at the old views are re-pointed
Inventory valuationOdoo 17 set the cost of FIFO products to the average price of the remaining quantities. Odoo 18 added valuation by lot or serial number, so each lot of a product can carry its own valuationCosting behavior moves in 17 and gains an option in 18. Both are verified against your closing figures on a copy
Views and reportsOdoo 17 shipped a redesigned user interface and technically overhauled the accounting reports. Odoo 18 gave Studio a report editor that adds table columns, relabels and highlights form buttons, and declares a customized invoice template compatible with Send & PrintViews and report templates written for 16 are the most common source of tracebacks, and some of that code can retire into Studio
SpreadsheetsOdoo 18 renamed ODOO.PIVOT formulas to PIVOT, inserts pivot tables as dynamic pivots, added calculated fields, and removed the Link to Odoo menu option in spreadsheetsEvery saved spreadsheet is opened during testing. The rename is silent until someone looks
Manufacturing planningOdoo 17 let a bill of materials update apply to existing manufacturing orders. Odoo 18 gave the Master Production Schedule yearly planning, automatic replenishment, maximum batch sizes, an import template and visibility across all BoM levelsPlanning customizations are worth challenging before they are ported, not after

/ Responsibilities

Who does what in an Odoo 16 to 18 upgrade?

The boundaries are published, not negotiable. All of it is stated in Odoo’s upgrade documentation and its guide to upgrading a customized database. We name them here so nobody finds the boundary in week five.

OdooRuns the upgrade

Odoo converts the standard database

Odoo’s upgrade platform performs the technical conversion of standard modules and data to the target version. The Enterprise agreement covers standard applications, Studio customizations while Studio stays installed and subscribed, and developments under a maintenance of customizations subscription. Brainvire does not perform this step.

Where it leads: What the Enterprise edition includesTalk it through →
BrainvirePorts the code

Your custom modules are our job

That same agreement expressly excludes additional modules without a maintenance contract, built in-house or by third parties, including Odoo partners. So we do it, against two releases of change rather than one: each module made installable on an empty Odoo 18 database first, then on the upgraded copy.

Where it leads: How we build upgrade-safe codeTalk it through →
Nobody, by defaultOutside the SLA

Three things no upgrade includes

Odoo lists what its upgrade service does not cover: cleaning pre-existing data and configurations while upgrading, upgrading additional modules without a maintenance contract, and training people on the new version’s features and workflows. Skipping a version makes the last one bigger: your team meets two releases of interface change at once.

Where it leads: Training on the new versionTalk it through →
Both of usProves it works

Testing is shared, and it is the point

Odoo is explicit: if a new version breaks a customization, making it compatible is the responsibility of whoever maintains it. We test on a copy against your real flows, you confirm the outcomes, and what fails is fixed before a date is agreed.

Where it leads: Book an upgrade rehearsalTalk it through →

/ Delivery

How does a 16 to 18 upgrade actually run?

Odoo publishes a six-step path; we run it as four stages. Brainvire plans a straight version upgrade at 3 to 8 weeks, and skipping a version puts you at the top. With new scope, our implementation bands apply instead:

01020304

Freeze and challenge

Development stops: anything built during the upgrade has to be upgraded and tested again. Every customization is argued against what 17 and 18 now do as standard. Retiring redundant code here is the cheapest work on the plan.

Request an upgraded test database

Odoo delivers a converted copy. How you request it depends on hosting: the Upgrade platform, the Odoo Online database manager, your Odoo.sh project, or the command line on-premise. This stage only proves the conversion completes.

Make every module installable

Each module goes on an empty Odoo 18 database first, so tracebacks come from the module rather than your data, then on the upgraded copy. Two generations of renames are handled with upgrade scripts.

Test, rehearse, cut over

Your flows run end to end on the upgraded copy, including integrations, automated actions and exports. If time has passed we request a fresh copy, rehearse the day before, then take production down in the quietest window you have.

/ Scope

What makes a 16 to 18 upgrade bigger or smaller?

Four things decide it, and only one is Odoo. Two Odoo 16 databases of the same size can sit weeks apart; Odoo consulting is where yours gets sized.

Custom modules

How many, and how they were built

A module that extends Odoo by inheritance moves forward. One that edited a standard file has to be found first, and it has two releases of change to survive rather than one.

Studio and config

What was changed without code

Studio work is carried by the upgrade service while Studio stays installed and the subscription is active. Configuration, saved filters, mail templates and translations are still re-checked by hand.

Integrations

What talks to the database

EDI feeds, APIs, connectors and scheduled jobs are on Odoo’s own do-not-forget-to-test list. A connector removed in 17 or 18 needs a replacement chosen before the date, not after.

Hosting

Where the database lives

Odoo Online, Odoo.sh and on-premise each request and deploy the upgrade differently. On Odoo.sh the upgraded copy is restored and your modules updated on every commit, which resequences the work.

/ Version moves, on the record

Have we moved a customized Odoo database before?

Three version-to-version moves onto Odoo 16, each with the case study behind it.

/ The target decision

From Odoo 16, should you target 18 or go straight to 19?

Odoo’s published standard and extended support table gives every major version three years of standard support, and lists Odoo 16.0 as released in October 2022 with standard support ending September 2025 — a date already passed. So the question is not whether to move, but how far.

CriterionMove to Odoo 18Move to Odoo 19
Version gap from Odoo 16Two major versions in one passThree major versions in one pass
Support window Odoo publishesReleased October 2024. Standard support listed to September 2027 (planned)Released September 2025. Standard support listed to September 2028 (planned)
Release notes to absorbThe Odoo 17 and Odoo 18 release notesThose plus the Odoo 19 release notes, landing together
Work on your custom modulesEach made installable on 18, then retested against your flowsEach made installable on 19, with a third release of change to absorb first
What comes afterA second, smaller upgrade to 19 whenever you choose itNothing further until the next major version
Odoo’s own guidanceOdoo notes that the smaller the version gap, the easier the upgrade should beSame guidance, stretched one version further

Choose 18 for the smallest change your position still allows; choose 19 if your customization surface is light. We size both first. Already on 17? The shorter move is Odoo 17 to 18; other routes start at Odoo migration.

/ Questions we are asked

Odoo 16 to 18 migration FAQs.

What is an Odoo 16 to 18 migration?

An Odoo 16 to 18 migration moves a production database from Odoo 16.0 to Odoo 18.0 in a single pass. Odoo's own upgrade platform performs the technical conversion of the standard modules and data. Your partner makes every custom module installable on 18, runs the business flows on a test copy, and plans the cut-over with you.

Can we go straight from Odoo 16 to 18?

Straight to 18. Odoo's upgrade documentation uses moving a database from Odoo 16.0 to Odoo 18.0 as its own worked example, and states that you can upgrade from any version to a supported version. There is no requirement to land on 17 first, and stopping there means running the whole test cycle twice.

Why is an Odoo 16 to 18 upgrade bigger?

Because it crosses two release boundaries instead of one. Your custom code absorbs everything Odoo changed in 17 and everything it changed in 18 in the same pass, and so does your test script. Odoo's own note is that the smaller the version gap, the easier the upgrade should be. The shape of the work is identical; the volume is not.

Is Odoo 16 still supported?

Odoo gives every major version three years of standard support. Its published support table lists Odoo 16.0 as released in October 2022 with standard support ending September 2025, a date that has passed, and prints it without the planned marker that later versions carry. Odoo 17.0 is listed to September 2026 and Odoo 18.0 to September 2027.

What changed between Odoo 16 and 18?

Two releases of change arrive together. Odoo 17 removed the manual reconciliation widget, dropped the planned versus immediate transfer distinction, put codes in localization tax names and enforced approval rules server-side. Odoo 18 rebuilt budgets around analytic budgets, added a hard lock date, merged the Follow-up and Customer Statement views, and redesigned the default multi-step routes.

Will our custom modules work on Odoo 18?

Not automatically. Odoo states that a database containing custom modules cannot be upgraded until a version of those modules exists for the target version, and its service level agreement excludes the upgrade of additional modules not covered by a maintenance contract that are created in-house or by third parties, including Odoo partners. Brainvire makes each module installable on 18, then retests it against your flows.

Who performs the upgrade, Odoo or the partner?

Odoo runs the database upgrade. Its platform converts standard modules and data to the target version, and its service level agreement covers standard applications, customizations created with Studio while Studio is installed and the subscription is active, and developments under a maintenance of customizations subscription. Everything else is the customer's or partner's work, and that is the part we take.

How long does a 16 to 18 upgrade take?

Brainvire plans a straight version upgrade at three to eight weeks, and a two-version jump usually sits at the top of that band. Those are our own planning figures, not Odoo published ones, and they assume a code freeze and one full rehearsal. Where new scope travels with the upgrade, our implementation bands apply instead.

What happens to our Studio customizations?

Studio work is carried by Odoo's upgrade service, with conditions. The service level agreement covers customizations created with the Studio app for as long as Studio is still installed and the subscription is still active. Studio stores changes as data rather than code, so they are reviewed against the new standard views instead of rewritten.

How do you test the upgrade before go-live?

On a copy, never on production. Odoo delivers an upgraded test database and neutralizes it: scheduled actions are disabled, outgoing mail servers are archived, payment providers and delivery carriers are reset to test, and bank synchronization is off. We run your flows end to end, then rehearse the whole upgrade the day before.

Can an upgrade be done without downtime?

No, and no partner should promise it. Odoo states that the production database is unavailable while it upgrades, which is why the move is planned for the window when usage is lowest. On Odoo.sh the platform reverts automatically if the upgrade fails and keeps a pre-upgrade backup. On Odoo Online a completed upgrade cannot be reversed.

What does Odoo's upgrade service not cover?

Odoo lists three exclusions: cleaning pre-existing data and configurations during the upgrade, upgrading additional modules that are not covered by a maintenance contract, whether built in-house or by third parties including Odoo partners, and training people on the new version's features and workflows. Brainvire scopes each of those as its own piece of work.

/ Next step

Let’s find out what is really sitting on top of your Odoo 16.

  • A senior architect replies within one business day
  • Your details are never shared or sold
  • An NDA can be signed before we hear any detail

US +1 (631) 897-7276 · Gulf +971-54-737-4253 · Singapore +65-9086-0319 · India +91-22-6116-3300.

Fox SportsSouthwestNikeDisneyMcAfeeUnder ArmourSesame WorkshopInsomnia CookiesPan Emirates Home

Trusted by 2,000+ brands worldwide

“Brainvire has helped our business grow. We feel like it’s a true partnership. They’re always present. It’s been seven great years, looking forward to more.”
Mr. Kevin ClorCIO - Tent and Table

Book a working session

Tell us which Odoo version you run and what has been built on top of it.

    Ten characters minimum. An NDA can be signed before we hear any detail.