Odoo 17 to Odoo 18 migration: what changes and how we move you
Odoo’s platform converts the standard database. Everything built on top of it is somebody else’s job, and this page says whose. Brainvire inventories your Odoo 17, makes each module installable on 18, then proves it on a copy before a date is agreed.
Moving a live database from Odoo 17.0 to Odoo 18.0. Odoo’s own upgrade platform performs the technical conversion of the standard modules and data. Making custom modules work on 18 is the customer’s or partner’s responsibility, and that is where the real work sits.
Teams running Odoo 17.0 in production, especially those carrying custom modules, Studio changes or third-party apps nobody has inventoried since they were built.
Brainvire plans a straight version upgrade at 3 to 8 weeks, assuming a code freeze and one full rehearsal. These are our own planning figures, not Odoo published ones. Where new scope travels with the upgrade, our implementation bands apply instead.
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.
/ Before the next version lands
Why does the Odoo 17 upgrade keep getting postponed?
Four reasons we hear, and none of them is the upgrade itself.
The clock is not yours to set
Odoo supports each major version for a fixed window and publishes the dates. Waiting does not pause it, and a version you can no longer upgrade from is a decision made for you.
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.
You may be carrying what 18 now ships
Odoo’s own guidance is to challenge every customization against what has been added since. Some of it is standard now, and the cheapest module is the one you delete.
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.




Trusted by enterprise Odoo teams worldwide












/ Version to version
What actually changed between Odoo 17 and Odoo 18?
Twelve changes that alter how a working Odoo 17 database behaves on 18, each taken from Odoo’s own Odoo 18 release notes. The third column is our reading, not theirs.
| Area | What Odoo 18 changed | What it means for your upgrade |
|---|---|---|
| Removed modules | The eBay Connector was removed, and the Alipay, PayU Latam and PayUmoney payment providers were removed | If you run any of these, a replacement is chosen and built before cut-over. The row that most often moves a date |
| Payments | Payments no longer create an accounting move unless an outstanding account is set on the linked payment method | Every payment method is checked for its outstanding account before anything is posted on 18 |
| Warehouse routes | Push rules now fire when a transfer is validated instead of creating onward transfers in advance, and all default multi-step routes were redesigned around that | Routes are re-tested end to end. The change most likely to surprise an operations team on day one |
| Close controls | A lock dates wizard allows locking by journal type and adds a Hard Lock date with an exceptions mechanism | A Hard Lock date cannot be changed once saved, so it is set late and deliberately |
| Taxes | All standard sales taxes now follow a company setting defining them as price-included or price-excluded, with individual taxes able to override it | One decision at company level, then a check that every tax overriding it still behaves as it did |
| Budgets | Budget management was rebuilt around analytic budgets: no more dates on budget lines, no more budgetary positions. Separate financial budgets compare against the profit and loss report | Budget structure is redesigned, not carried. Agree the new shape with finance before cut-over |
| Statements | The Follow-up and Customer Statement views and modules were removed and merged, and the Partner Ledger was revamped to read like a customer statement that can be sent to customers | Reports, automations, saved filters and training material pointing at the old views are re-pointed |
| Inventory valuation | Valuation by lot or serial number means each lot or serial of the same product now carries its own valuation | Costing can be answered per lot, but only once configured. A decision to take, not a gain that arrives |
| Delivery | A dispatch management system plans delivery rounds, builds loads and tracks fleet capacity, using your own vehicles or a carrier | Custom delivery logic may now be replaceable with standard configuration, which is a module you stop maintaining |
| Manufacturing | The Master Production Schedule gained yearly planning, an automatic replenishment mechanism, maximum batch sizes, an import template and visibility across all BoM levels | Planning customizations are worth challenging before they are ported, not after |
| Studio | Studio can add table columns in the report editor, relabel and highlight form buttons, and declare a customized invoice template compatible with Send & Print | Some report code can be retired in favor of Studio, which the upgrade service carries while Studio stays installed |
| Spreadsheets | Pivot tables are inserted as dynamic pivots, calculated fields and the SEQUENCE, INDIRECT, OFFSET, CONVERT and CELL functions were added, and ODOO.PIVOT formulas are renamed PIVOT | Every saved spreadsheet calling ODOO.PIVOT is opened during testing. The rename is silent until someone looks |
/ Responsibilities
Who does what in an Odoo 17 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.
Odoo converts the standard database
Odoo’s upgrade platform performs the technical conversion of standard modules and data to the target version. Its 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.
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: each module made installable on an empty Odoo 18 database first, then on the upgraded copy, with upgrade scripts where models or fields were renamed.
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. Each is real work, scoped separately and up front.
Testing is shared, and it is the point
Odoo is explicit: if a change in 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.
/ Delivery
How does a 17 to 18 upgrade actually run?
Odoo publishes a six-step path for a customized database; we run it as four stages. Brainvire plans a straight version upgrade at 3 to 8 weeks. With new scope, our implementation bands apply instead:
Freeze and challenge
Development stops: anything built during the upgrade has to be upgraded and tested again. Every customization is argued against what Odoo 18 does 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. Renamed models and fields 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 17 to 18 upgrade bigger or smaller?
Four things decide it, and only one is Odoo. Two databases on the same version, size and hosting can sit weeks apart on this list.
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, because nothing announces it. Quality matters more than count.
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.
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 18 needs a replacement chosen before the date, not after.
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, each with the case study behind it.
Accelerated Solutions Group
ASG manufactures automotive accessories. Its Odoo 13 setup had turned complex under customization, so Brainvire moved it to Odoo 16: analytic accounts attach to order lines automatically, work orders are approved in bulk, manufacturing orders post labor cost, and scrap sits apart for rework.
Read the case →
CURE International
A non-profit running children’s hospitals across several countries. The Odoo 16 upgrade put eight sites on one centralized inventory and purchase system, replaced manual stock adjustments with automated records under user-based access, and structured the approval workflows.
Read the case →
AMASCO LLC
AMASCO runs repairs and maintenance across oil and gas, maritime and Gulf shipping. Brainvire moved its Odoo backend from 14 to 16 and rebuilt the customizations there: a project created when a quote is accepted and linked to procurement, role-based limits on posting entries, and requisitions that pass approval first.
Read the case →
/ The target decision
Should you move to Odoo 18, or straight to Odoo 19?
Odoo 19 exists, so 18 is not automatically the answer. The dates below are quoted from Odoo’s published standard and extended support table, which gives every major version three years of standard support and marks future end dates as planned.
| Criterion | Move to Odoo 18 | Move to Odoo 19 |
|---|---|---|
| Version gap from Odoo 17 | One major version | Two major versions in one pass |
| Support window Odoo publishes | Released October 2024. Standard support listed to September 2027 (planned) | Released September 2025. Standard support listed to September 2028 (planned) |
| Release notes to absorb | The Odoo 18 release notes | Those plus the Odoo 19 release notes, landing together |
| Work on your custom modules | Each made installable on 18, then retested against your flows | Each made installable on 19, with more standard change to absorb first |
| What comes after | A second, smaller upgrade to 19 whenever you choose it | Nothing further until the next major version |
| Odoo’s own guidance | Odoo notes that the smaller the version gap, the easier the upgrade should be | Same guidance, applied once instead of twice |
Choose 18 if you carry real custom code and want the smallest change in one pass. Choose 19 if your customization surface is light. The work is the same shape either way; only the volume differs, so we size both first. Other routes onto Odoo start at Odoo migration.
/ Questions we are asked
Odoo 17 to 18 migration FAQs.
What is an Odoo 17 to 18 migration?
An Odoo 17 to 18 migration moves a production database from Odoo 17.0 to Odoo 18.0. 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.
What changed between Odoo 17 and Odoo 18?
Odoo 18 rebuilt budgets around analytic and financial budgets, added a hard lock date and locking by journal type, merged the Follow-up and Customer Statement views, set sales taxes as price-included or excluded by a company setting, added valuation by lot or serial number, and redesigned the default multi-step routes.
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.
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.
How long does an Odoo 17 to 18 upgrade take?
Brainvire plans a straight version upgrade at three to eight weeks. That is our own planning figure, not an Odoo published one, and it assumes a code freeze and one full rehearsal. Where new scope travels with the upgrade, our implementation bands apply instead: eight to twelve weeks small, twelve to twenty-four weeks mid-market.
How long is Odoo 17 supported?
Odoo gives every major version three years of standard support, then an extended support window. Its published support table lists Odoo 17.0 as released in November 2023 with standard support ending September 2026, and Odoo 18.0 as released in October 2024 with standard support ending September 2027. Both end dates are marked planned.
Should we move to Odoo 18 or straight to Odoo 19?
Both are real options and we size both before you decide. Odoo 19.0 exists and carries a longer support runway, but it sits two major versions from 17, so your custom code absorbs more standard change in one pass. Odoo's own guidance is that the smaller the version gap, the easier the upgrade should be.
What happens to our Odoo 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 an Odoo 18 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 Odoo 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.
Can Brainvire upgrade an Odoo database another partner built?
Yes, and it is a common starting point. Before any date is discussed we inventory what sits on your Odoo 17: Studio changes, custom modules, third-party apps and anything edited in place. Each item gets a verdict of keep, rebuild or retire, and Odoo 18 often does as standard what an older version needed code for.
/ Next step
Let’s find out what is really sitting on top of your Odoo 17.
- 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.









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.”
Book a working session
Tell us which Odoo version you run and what has been built on top of it.