← All use cases

Upgrading and migrating Odoo

Upgrades stall on custom code. The standard modules move forward cleanly; it's the module a partner wrote three versions ago, that nobody has looked at since, that turns a weekend into a quarter.

The first useful thing is an honest inventory: which of your customizations still work on the target version, which need changes, and which have been made redundant because Odoo now does it natively. That last category is usually larger than people expect.

CodeCobra reads your modules against the target version and tells you which is which. Then it does the work — porting what needs porting, deleting what Odoo now covers, testing each piece in a disposable instance of the new version before anything is committed.

Migrations from another system follow the same shape, with reconciliation at the end: the totals in the old system against the totals in the new one, line by line where they differ.

What people asked, and what came back

Real production requests, condensed and with anything identifying removed.

ConsultantEvents
Import the accounting history for the QuickBooks migration, with closing entries.

What happened: Imported the history, set up the bank and credit-card journals, and reconstructed the prior year-end trial balance.

DeveloperRetail
Investigate whether these v13 custom modules can be migrated to v19.

What happened: Assessed every module for feasibility, then migrated the ones worth keeping — theme, portal orders, extended product behaviour.

ConsultantEvents
We fixed a lot of import errors on the existing staging database. Now I want to test all the imports from a fresh start.

What happened: Stood up a clean database and proved the import resumes on a date cursor rather than restarting — no duplicate records.

ConsultantPublishing
Import the three phone fields we made in Studio from the old v15 database.

What happened: Mapped the Studio fields and imported all three phone types.

More requests in this category

  • Bring over open invoices and credits as of the cutover date — nothing else.Consultant · Events
  • Test-upgrade our staging database to the next version and list what breaks.Developer · Retail
  • Migrate the custom fields we built in Studio into a proper module.Consultant · Publishing
  • Rebuild last year's inventory valuation after the costing method change.Consultant · Distribution

Which Odoo versions are supported?

16.0, 17.0, 18.0 and 19.0, in Community and Enterprise. It can read a module written for one and tell you what it needs to run on another.

Can I see what will break before committing?

That's the recommended first step. Ask for an assessment of your custom modules against the target version — it's a read-only investigation, it costs little, and it's the input to deciding whether to go at all.

How do I know the migrated data is right?

Ask for the reconciliation explicitly: totals in the old system against totals in the new, and a list of every record that differs. Don't accept a migration you can't check.