Skip to content
KalvyAI

Odoo migration · Odoo 19 and 20

Odoo upgrades, tested before they go live.

We upgrade Odoo databases and custom modules to Odoo 19 and 20, on Community and Enterprise. Every migration runs on a copy first, and ends with a report of record counts and checks per model.

What we hear

Sound familiar?

We're two versions behind and afraid of what the upgrade will break.

The upgrade was meant to take a month. It's been six.

Our custom modules were written by a partner who's gone.

We upgraded once before and found broken reports a week later.

What we migrate

Everything that has to work on Monday.

An upgrade isn't done when the database opens. It's done when every report, integration and automation works as before.

  1. 01

    Your database

    Every standard module's data moved to the new version's structure, including history, attachments and settings.

  2. 02

    Custom modules

    Ported to the new version's APIs, cleaned up where the old code fights the framework, and covered by automated tests.

  3. 03

    Third-party apps

    Upgraded to their new versions where they exist; where they don't, we port them or replace them with standard features.

  4. 04

    Studio changes and reports

    Fields, views, reports and email templates checked one by one, because these are what users notice first.

  5. 05

    Integrations

    Store, marketplace, bank, payment and logistics connections re-tested against the new version before cutover.

  6. 06

    Access and automation

    User rights, record rules, scheduled actions and server actions verified, so nothing quietly stops running.

Two editions, two paths

Community and Enterprise upgrade differently.

Odoo Enterprise

Odoo's upgrade service converts the standard data. We port your custom and third-party modules, fix what the service can't, and test the result. You get one migrated database, not two half-finished ones.

Odoo Community

There is no official upgrade service for Community. We use the open-source OpenUpgrade scripts where they cover your versions, write our own where they don't, and move one version at a time when you are several behind.

Why upgrade at all? Odoo fixes bugs and security issues only in its most recent major versions. The further behind you fall, the bigger and riskier the jump becomes.

Proof, not promises

What you can check at the end

The migration report is yours to keep, and the checks can be run again.

  • 1Record counts per model, before and after, with every difference explained
  • 2A list of failed checks from each test run, and how each was fixed
  • 3Automated tests for every custom module
  • 4Timing of the final migration, so the cutover window is known in advance
  • 5A rollback plan, tested before go-live

A typical project

An Odoo 20 migration, step by step

  1. Week 1

    Inventory

    Every module, customisation, report and integration listed, with data volumes per model.

  2. Week 2

    Test migration

    A full run on a copy of your database, with record counts and failed checks in a report.

  3. Weeks 3–5

    Fix and retest

    Custom modules ported with automated tests, then the test migration runs again until it's clean.

  4. Cutover

    Go live

    Final migration over a weekend, the same checks re-run, and a rollback plan ready if needed.

Packages

Start with an assessment

One to two weeks, a test migration on a copy of your database, and a fixed quote for the real one.

Odoo 20 migration assessment

1–2 weeks

Know what breaks before you upgrade: modules, customisations, data and reports.

  • Module and customisation inventory
  • Test migration on a copy
  • Risk list with effort estimates
  • Fixed quote for the migration

Evidence · Migration test report with record counts and failed checks

Fixed quote after scopingGet a quote for this

Our own apps

Odoo apps we build and publish.

Besides client work, we publish our own Odoo apps. They're built to the same standard as your modules: tested, documented and supported by the engineers who wrote them.

FAQ

Questions we get asked.

How long does an Odoo migration take?

It depends on the number of custom modules, third-party apps and the size of your database. The migration assessment ends with a test run and a fixed quote with a timeline, so you know before you commit.

Can we skip versions?

On Enterprise, Odoo's upgrade service can usually take you to the target version directly; custom modules still need porting to that version. On Community, the database moves one version at a time, which we script and test so it runs as one job.

How much downtime will there be?

Only the final migration at cutover. We time it during the test runs, then schedule it for a weekend or your quietest hours. Users keep working on the old version until then.

What if a third-party app has no version for Odoo 20?

We check this in the first week. The options are to port it ourselves, replace it with a standard feature or another app, or wait; you choose with the effort for each in front of you.

What happens if the test migration fails?

That is what it's for. Failed checks go into the report, we fix them and run it again, until a full run is clean. The production database is never touched until then.

Should we move to Odoo 19 or go straight to 20?

Usually to the newest version your critical apps support, so you don't migrate twice. If an important third-party app isn't ready for 20 yet, 19 can be the safer step. The assessment answers this for your system.

Is our data safe during the migration?

We work under an NDA, on a copy of your database, with named accounts. Copies are deleted at the end. Our Security page has the details.

Do you also take over the system after the upgrade?

If you want. Kalvy Care covers monitoring, fixes and planning the next upgrade, so it doesn't become another big project.

Not upgrading? See implementation, custom modules and integrations, or our security and data handling.

Planning an Odoo upgrade?

A 30-minute call with an engineer. You'll know the risks and the next step, even if it isn't us.