Skip to Content

Odoo Migration Checklist: A Complete Step-by-Step Guide

Use this complete Odoo migration checklist to plan data, custom modules, integrations, testing, cutover, rollback, training and post-migration support.
31 min read
July 24, 2026
Odoo Guide

Introduction

An Odoo migration rarely fails because someone forgot to move a customer name or product code.

The difficult problems usually appear elsewhere: a custom workflow behaves differently, an integration stops exchanging data, taxes produce unexpected results, employees cannot find a familiar action, or a report no longer matches the numbers used by management.

That is why a successful Odoo migration requires much more than moving a database.

It requires a clear scope, reliable backups, reviewed custom modules, clean data, complete testing, trained users, a controlled cutover and people who know what to do when something does not go according to plan.

Quick answer: A complete Odoo migration checklist should cover project scope, current-system assessment, backups, data cleansing, custom-module upgrades, hosting preparation, integration testing, user acceptance testing, cutover planning, business validation, employee training and post-go-live support.

This guide provides a practical checklist for four common migration scenarios:

  1. Upgrading from an older Odoo version

  2. Moving from another ERP system to Odoo

  3. Changing Odoo hosting environments

  4. Switching from Odoo Community to Enterprise

These projects share many activities, but they are not technically identical. The first step is understanding which type of migration your business is actually planning.

Table of Contents

  1. What is an Odoo migration?

  2. Types of Odoo migration

  3. Odoo migration vs upgrade

  4. Why an Odoo migration checklist matters

  5. Odoo migration phases

  6. Phase 1: Define the migration scope

  7. Phase 2: Assess the current environment

  8. Phase 3: Build the project team

  9. Phase 4: Audit standard and custom modules

  10. Phase 5: Prepare and clean data

  11. Phase 6: Prepare infrastructure and hosting

  12. Phase 7: Upgrade custom modules

  13. Phase 8: Request and prepare the test database

  14. Phase 9: Test the migrated environment

  15. Phase 10: Prepare users and documentation

  16. Phase 11: Create the cutover plan

  17. Phase 12: Execute production migration

  18. Phase 13: Validate after go-live

  19. Phase 14: Stabilize and optimize

  20. Odoo migration checklist by business function

  21. Common migration risks

  22. Odoo migration timeline

  23. Odoo migration cost factors

  24. How to choose an Odoo migration partner

  25. Master Odoo migration checklist

  26. Frequently asked questions

What Is an Odoo Migration?

An Odoo migration is the controlled movement of business data, processes, configurations, customizations and users from one operating environment to another.

The destination may be:

  • A newer Odoo version

  • A new Odoo database

  • Odoo Enterprise

  • Odoo.sh

  • Odoo Online

  • An on-premise server

  • A new cloud provider

  • Odoo from another ERP platform

The word “migration” is often used broadly, but different migration types require different technical approaches.

For example, upgrading an Odoo 16 database to a newer supported Odoo version is not the same as importing customers, invoices and inventory from a completely different ERP.

Odoo’s official upgrade documentation defines an upgrade as moving an Odoo database from an older version to a newer supported version. It also clarifies that this standard upgrade process does not cover switching editions, changing hosting types, downgrading, or moving from another ERP system to Odoo.

Understanding this difference prevents businesses from purchasing the wrong service or creating an incomplete project plan.

Types of Odoo Migration

1. Odoo Version Upgrade

This involves moving an existing Odoo database to a newer major version.

Examples:

  • Odoo 15 to Odoo 18

  • Odoo 16 to Odoo 19

  • Odoo 17 to Odoo 19

The work may include:

  • Standard database upgrade

  • Custom-module code migration

  • Data migration scripts

  • View and report adjustments

  • Integration updates

  • Business-flow testing

  • User retraining

Odoo recommends keeping databases on supported versions because newer releases include features, bug fixes, performance improvements and security improvements. The official documentation currently states that each major version receives three years of support.

2. Legacy ERP to Odoo Migration

This involves moving from another ERP, accounting application, CRM or collection of spreadsheets into Odoo.

Potential source systems include:

  • SAP

  • Microsoft Dynamics

  • NetSuite

  • Sage

  • QuickBooks

  • Tally

  • ERPNext

  • Zoho

  • Custom ERP software

  • Spreadsheets

  • Separate departmental applications

This type of migration requires more than converting database tables.

The project team must determine:

  • Which source records are reliable

  • How source fields map to Odoo

  • Which historical transactions are necessary

  • How balances will be reconciled

  • Whether old processes should be reproduced or redesigned

  • Which external identifiers must be preserved

  • What should remain archived outside the live system

3. Odoo Hosting Migration

An organization may move between:

  • Odoo Online

  • Odoo.sh

  • On-premise hosting

  • Private cloud hosting

  • A third-party managed server

Hosting migration can affect:

  • Custom-module compatibility

  • Backups

  • Filestore handling

  • Deployment methods

  • Infrastructure monitoring

  • Database access

  • Email configuration

  • Domain and SSL settings

  • Performance

  • Security responsibilities

Odoo Online does not support non-standard server-side applications. Odoo’s hosting guidance therefore requires non-standard applications to be removed before transferring a database into Odoo Online.

The hosting destination must be selected before migration design is finalized.

Different types of Odoo migration projects


4. Odoo Community to Enterprise Migration

This migration adds the Enterprise codebase and connects the database to a valid Enterprise subscription.

Odoo’s official guidance begins with backing up the Community database, stopping the server, installing the Enterprise components, installing the web_enterprise module, restarting the environment and linking the database to the Enterprise subscription. The exact procedure varies by operating system and installation method.

Community-to-Enterprise conversion should not be confused with a major-version upgrade.

A business may:

  • Switch editions without changing the major version

  • Upgrade the version and switch editions as separate coordinated activities

  • Migrate from Community to a new Enterprise database

Each approach needs its own validation plan.

Odoo Migration vs Odoo Upgrade

Area

Odoo migration

Odoo upgrade

Meaning

Broad movement between systems, editions, hosting environments, or versions

Move from an older Odoo version to a newer version

Data source

May be Odoo or another system

Existing Odoo database

Field mapping

Often extensive

Usually based on existing Odoo structures

Custom code

May be rebuilt or migrated

Must be made compatible with the target version

Process redesign

Often significant

Optional but strongly recommended

Hosting change

May be included

Not part of the standard database upgrade

Edition change

May be included

Not part of the standard version upgrade

Testing

Data, processes, integrations, reports and users

Version changes, custom modules, data and workflows

Main risk

Incorrect mapping or incomplete business transition

Incompatible custom code and changed standard behaviour

In everyday marketing language, “Odoo migration” may include an upgrade. In the technical plan, the activities should be separated clearly.

Why an Odoo Migration Checklist Matters

A migration checklist creates shared visibility. It prevents the project from depending on one developer, consultant or employee remembering every critical activity.

A structured checklist helps the team:

  • Define responsibilities

  • Track readiness

  • Identify missing information

  • Control scope

  • Protect business data

  • Test complete workflows

  • Prepare employees

  • Coordinate downtime

  • Establish approval criteria

  • Reduce launch risk

  • Document unresolved issues

  • Confirm post-launch stability

Without a checklist, migration work can become a series of disconnected technical tasks.

The database may start successfully while the business is still unable to:

  • Send quotations

  • Validate invoices

  • Receive inventory

  • Print reports

  • Process ecommerce payments

  • Synchronize external systems

  • Use automated actions

  • Access the correct companies

  • Complete accounting reconciliation

A successful migration is measured by business continuity, not simply by whether Odoo starts without a traceback.

Odoo Migration Phases

Phase

Main objective

Key output

1. Scope

Define what is being migrated

Approved migration scope

2. Assessment

Understand systems, data and customizations

Current-state report

3. Governance

Assign ownership and decisions

Migration team and RACI

4. Module audit

Review standard and custom applications

Module disposition list

5. Data preparation

Clean, map and validate data

Approved migration datasets

6. Infrastructure

Prepare target environment

Working target platform

7. Code migration

Upgrade custom modules

Compatible codebase

8. Test migration

Create migrated test environment

Test database

9. Validation

Test processes, data and integrations

Signed test results

10. Readiness

Prepare employees and support

Go-live readiness approval

11. Cutover

Move production operations

Live target environment

12. Stabilization

Resolve issues and validate outcomes

Stable production system


Step-by-step Odoo migration roadmap

Phase 1: Define the Migration Scope

The scope should explain exactly what will move and what will not.

Migration Scope Checklist

  • Confirm the current Odoo or source-system version.

  • Confirm the target Odoo version.

  • Confirm the current edition: Community or Enterprise.

  • Confirm the target edition.

  • Confirm the current hosting platform.

  • Confirm the target hosting platform.

  • List all installed standard applications.

  • List all custom modules.

  • List all third-party applications.

  • List all Odoo Studio customizations.

  • List all external integrations.

  • List all companies and legal entities.

  • List all active websites and ecommerce stores.

  • List all active languages and localizations.

  • Identify the historical period to migrate.

  • Identify records that will remain archived.

  • Define expected downtime.

  • Define the target go-live window.

  • Document exclusions.

  • Obtain written scope approval.

Questions That Must Be Answered

  • Are we upgrading the current database or creating a new one?

  • Will all companies move at the same time?

  • Will every current application remain in use?

  • Are any custom features now available in standard Odoo?

  • How much historical data must remain operational?

  • Are we changing hosting at the same time?

  • Are we switching from Community to Enterprise?

  • Are we redesigning processes or reproducing existing workflows?

  • Who will approve the migrated data?

  • Who has authority to approve go-live?

Avoid combining several major changes without understanding their dependencies.

A company may decide to upgrade, change hosting, replace integrations and redesign accounting at the same time. That may be appropriate but the combined risk and testing effort must be reflected in the plan.

Phase 2: Assess the Current Environment

Before changing anything, document the environment as it actually exists. Do not rely only on old specifications. Production systems evolve.

Users create saved filters, administrators add fields, developers modify reports and departments build unofficial processes that may never appear in project documentation.

Technical Assessment Checklist

  • Record the Odoo version and build.

  • Record the PostgreSQL version.

  • Record the Python version.

  • Document the operating system.

  • Document server specifications.

  • Record database size.

  • Record filestore size.

  • Review database growth.

  • Review worker and memory configuration.

  • Document proxy and SSL configuration.

  • Document scheduled backup processes.

  • Test backup restoration.

  • Document email-server configuration.

  • Document cron jobs and scheduled actions.

  • Review system logs.

  • Review recurring performance problems.

  • Document deployment procedures.

  • Document repositories and branches.

  • Record all addons paths.

  • Confirm access to source code and credentials.

Functional Assessment Checklist

  • Document active business workflows.

  • List critical approval processes.

  • Review accounting configuration.

  • Review taxes and fiscal positions.

  • Review warehouse routes and replenishment rules.

  • Review product costing methods.

  • Review manufacturing workflows.

  • Review ecommerce checkout and payment flows.

  • Review website forms and lead creation.

  • Review customer and supplier portals.

  • Review access rights and record rules.

  • Review automated actions.

  • Review server actions.

  • Review email templates.

  • Review report templates.

  • Review dashboards and spreadsheets.

  • Review language translations.

  • Review saved filters and favourites.

  • Review custom menus and actions.

  • Identify manual workarounds.

Business-Critical Process Inventory

Create a table like this before migration:

Process

Business owner

Current system

Migration priority

Downtime tolerance

Lead to quotation

Sales director

Odoo CRM and Sales

Critical

Four hours

Purchase to receipt

Procurement manager

Odoo Purchase

Critical

Four hours

Order fulfilment

Operations manager

Odoo Inventory

Critical

Two hours

Invoice to payment

Finance director

Odoo Accounting

Critical

Eight hours

Ecommerce checkout

Ecommerce manager

Odoo Website

Critical

One hour

Employee expenses

HR manager

Odoo Expenses

Medium

One day

This inventory becomes the foundation of testing and go-live approval.

Phase 3: Build the Migration Team

An Odoo migration is not owned only by the developer. The project needs people who understand technology, processes, data and daily operations.

Recommended Migration Roles

Executive Sponsor

  • Approves the business case

  • Resolves major conflicts

  • Protects resources

  • Approves significant scope changes

Migration Project Manager

  • Maintains the plan

  • Coordinates teams

  • Tracks risks and decisions

  • Controls scope and timeline

Odoo Functional Lead

  • Maps processes

  • Reviews configuration

  • Coordinates functional testing

  • Supports user training

Odoo Technical Lead

  • Reviews architecture

  • Migrates custom modules

  • Handles scripts and integrations

  • Reviews performance and deployment

Data Owners

  • Clean and approve datasets

  • Define mapping rules

  • Reconcile migrated information

Process Owners

  • Approve future workflows

  • Define acceptance criteria

  • Sign off user testing

Key Users

  • Test realistic daily activities

  • Identify practical issues

  • Support employee adoption

Infrastructure or DevOps Lead

  • Prepares environments

  • Manages backups and deployment

  • Supports monitoring and rollback readiness

Responsibility Checklist

  • Assign one owner to every major workstream.

  • Define who can approve scope changes.

  • Define who approves migrated data.

  • Define who approves custom-module behaviour.

  • Define who makes the final go-live decision.

  • Define the escalation path.

  • Document vendor and partner responsibilities.

  • Schedule regular migration reviews.

  • Maintain a central decision log.

  • Maintain a migration-risk register.

Phase 4: Audit Standard, Custom and Third-Party Modules

This is one of the most important activities in an Odoo version migration. A business may have dozens of modules but not every module should automatically move to the new version.

Module Audit Checklist

For every module, record:

  • Technical name

  • Display name

  • Module owner

  • Source: Odoo, custom, or third party

  • Current version

  • Target-version availability

  • Business purpose

  • Number of active users

  • Dependent modules

  • External dependencies

  • Data models introduced

  • Reports modified

  • Views inherited

  • Security changes

  • Scheduled actions

  • Automated tests

  • Maintenance owner

  • Upgrade approach

  • Final migration decision

Module Migration Decisions

Classify each module as:

Retain

The functionality remains necessary and must be migrated.

Replace With Standard Odoo

A newer Odoo version now provides equivalent functionality.

Reconfigure

The requirement can be handled through standard settings or Studio rather than custom code.

Rebuild

The module is necessary but the existing architecture should not be carried forward.

Retire

The functionality is no longer required.

Postpone

The module is not required for the initial launch and can move in a later phase.

Odoo recommends stopping feature development at the beginning of a customized upgrade and reviewing existing customizations against new standard capabilities. Removing custom features that have become redundant reduces technical debt and makes the upgrade easier.

Odoo custom module migration decision matrix

Code-Freeze Checklist

  • Set the code-freeze date.

  • Stop non-critical feature development.

  • Allow only approved production fixes.

  • Create a migration branch.

  • Tag the current production release.

  • Record unmerged work.

  • Document emergency-fix procedures.

  • Communicate the freeze to all developers.

  • Prevent uncontrolled production changes.

  • Establish a method for synchronizing critical fixes.

Without a controlled freeze, the migration team may repeatedly upgrade and retest moving code.

Phase 5: Prepare and Clean Data

Data migration should begin long before the final cutover.

The technical import is often straightforward compared with the business work required to determine what is correct.

Data Discovery Checklist

  • List every source system.

  • List every spreadsheet used operationally.

  • Identify the owner of each dataset.

  • Determine the authoritative source.

  • Identify duplicate records.

  • Identify incomplete records.

  • Identify obsolete records.

  • Identify invalid references.

  • Identify unbalanced financial data.

  • Identify inconsistent product codes.

  • Identify archived records that should remain archived.

  • Identify personal or sensitive data.

  • Define retention obligations.

  • Define migration-validation rules.

Common Odoo Data Categories

  • Customers

  • Suppliers

  • Contacts

  • Products

  • Product variants

  • Product categories

  • Units of measure

  • Price lists

  • Vendor price lists

  • Warehouses

  • Locations

  • Inventory quantities

  • Lots and serial numbers

  • Bills of materials

  • Routings and operations

  • Chart of accounts

  • Taxes

  • Journals

  • Opening balances

  • Open customer invoices

  • Open vendor bills

  • Open sales orders

  • Open purchase orders

  • Employees

  • Assets

  • Projects and tasks

  • Contracts and subscriptions

  • Attachments

  • Chatter history

Data Cleansing Checklist

  • Remove confirmed duplicate customers.

  • Remove confirmed duplicate suppliers.

  • Standardize country and state values.

  • Standardize phone formats.

  • Validate email addresses where practical.

  • Standardize product codes.

  • Review inactive products.

  • Review obsolete suppliers.

  • Correct invalid tax assignments.

  • Correct missing account mappings.

  • Reconcile inventory.

  • Reconcile receivables and payables.

  • Reconcile the general ledger.

  • Review negative inventory.

  • Review incomplete manufacturing orders.

  • Review draft and cancelled documents.

  • Separate records to migrate from records to archive.

  • Obtain data-owner approval.

Historical Data Decision

Do not migrate history merely because it exists.

Ask:

  • Do users need it for daily operations?

  • Is it required for audit or legal purposes?

  • Can it remain in a read-only archive?

  • Will migrating it improve decisions?

  • Can it be reliably reconciled?

  • Does it depend on obsolete custom models?

  • Will attachments create excessive downtime?

A practical approach may include:

  • Migrating master data

  • Migrating open transactions

  • Migrating recent operational history

  • Retaining older history in a searchable archive

Phase 6: Prepare Infrastructure and Hosting

The target environment should be ready before the migration rehearsal begins.

Target Infrastructure Checklist

  • Confirm the hosting platform.

  • Confirm the hosting region.

  • Confirm subscription eligibility.

  • Confirm server capacity.

  • Confirm PostgreSQL compatibility.

  • Confirm required Python packages.

  • Confirm system libraries.

  • Configure source repositories.

  • Configure deployment branches.

  • Configure domains and DNS.

  • Prepare SSL certificates.

  • Configure outgoing email.

  • Configure inbound email aliases.

  • Configure backup schedules.

  • Test backup restoration.

  • Configure monitoring.

  • Configure error logging.

  • Configure access controls.

  • Configure firewall rules.

  • Confirm filestore storage.

  • Confirm attachment transfer method.

  • Confirm disaster-recovery responsibilities.

Environment Checklist

Prepare separate environments for:

  • Development

  • Migration development

  • Functional testing

  • User acceptance testing

  • Staging or rehearsal

  • Production

Using one environment for every activity increases the risk of overwritten data, inconsistent testing and accidental external communication.

Phase 7: Upgrade Custom Modules

Custom modules must be made compatible with the target Odoo version before production migration.

Odoo’s current customized-upgrade guidance recommends first making each module installable on an empty database running the target version. This helps isolate code-level incompatibilities from configuration or production-data problems.

Empty-Database Compatibility Checklist

  • Create an empty target-version database.

  • Install custom modules one at a time.

  • Resolve dependency errors.

  • Resolve Python syntax and API changes.

  • Update manifest files.

  • Update asset declarations.

  • Update XML views.

  • Review removed or renamed models.

  • Review removed or renamed fields.

  • Review inherited view paths.

  • Review XPath expressions.

  • Review OWL components.

  • Review JavaScript imports.

  • Review controllers and routes.

  • Review reports.

  • Review email templates.

  • Review computed fields.

  • Review constraints.

  • Review record rules.

  • Review access-control files.

  • Review scheduled actions.

  • Review automated actions.

  • Review external Python dependencies.

  • Confirm installation without critical warnings.

  • Confirm uninstallation where relevant.

Odoo identifies common compatibility problems such as changed asset declarations, OWL updates, removed fields or models, moved views, broken XPath expressions and renamed methods.

Custom-Module Runtime Testing Checklist

  • Open every customized view.

  • Create records through custom workflows.

  • Update records.

  • Delete records where permitted.

  • Test computed fields.

  • Test onchange behaviour.

  • Test constraints.

  • Test automated actions.

  • Test scheduled actions.

  • Test server actions.

  • Test reports.

  • Test email templates.

  • Test portal functionality.

  • Test website functionality.

  • Test access rights.

  • Test multi-company behaviour.

  • Test multi-currency behaviour.

  • Test translations.

  • Test external API calls.

  • Run automated tests.

A module being installable does not prove that its business behaviour is correct. Odoo specifically recommends runtime testing of views, reports, templates, workflows, computed fields and automation, as well as upgrading and running automated tests where available.

Code Cleanup Checklist

  • Remove functionality now available in standard Odoo.

  • Remove dead models and fields.

  • Remove unused views.

  • Remove unnecessary overrides.

  • Remove obsolete compatibility code.

  • Remove abandoned commented code.

  • Refactor duplicated logic.

  • Update documentation.

  • Add missing tests.

  • Review module dependencies.

  • Review security risks.

  • Review performance-heavy code.

An upgrade is a useful opportunity to reduce technical debt rather than copying every historical decision into the new version.

Phase 8: Request and Prepare the Migrated Test Database

Never make the first migration attempt against the only production database.

Odoo’s standard upgrade process begins with requesting an upgraded test database, updating custom code where applicable, thoroughly testing the result, resolving issues and only then planning the production upgrade.

Test Migration Checklist

  • Take a verified production backup.

  • Record the backup timestamp.

  • Confirm database and filestore are included.

  • Submit or restore the backup in the migration environment.

  • Run standard upgrade services where applicable.

  • Deploy upgraded custom modules.

  • Run migration scripts.

  • Merge the required filestore.

  • Review migration logs.

  • Record warnings and errors.

  • Confirm all expected modules are installed.

  • Confirm all companies are present.

  • Confirm all users are present.

  • Confirm attachments are accessible.

  • Confirm no unexpected modules were installed.

  • Confirm external communication is neutralized.

  • Assign the database to the testing team.

For on-premise upgrade requests, Odoo notes that the database copy may be processed without the full production filestore. The upgraded filestore output must therefore be combined correctly with the production filestore before realistic testing.

Test-Environment Safety Checklist

  • Disable or neutralize outgoing email.

  • Disable live payment credentials.

  • Disable live shipping credentials.

  • Disable production bank synchronization.

  • Disable external scheduled jobs.

  • Use sandbox integration credentials.

  • Add a visible test-environment banner.

  • Prevent test documents from reaching customers.

  • Prevent test stock updates from reaching marketplaces.

  • Restrict access to authorized testers.

Odoo-generated upgrade test databases are neutralized: scheduled actions and outgoing email are disabled, payment and delivery providers are reset to testing and bank synchronization is disabled. Teams should still review every custom integration and automated process.

Phase 9: Test the Migrated Environment

Testing must follow real business processes from beginning to end. Opening the database, reviewing a few records and printing one invoice is not sufficient.

Basic System Validation

  • Users can log in.

  • User roles are correct.

  • Companies are accessible correctly.

  • Menus and actions load.

  • Standard views display correctly.

  • Customized views display correctly.

  • Records can be created and edited.

  • Search filters work.

  • Saved favourites remain useful.

  • Data can be exported.

  • Attachments open.

  • Reports generate.

  • Email templates render.

  • Translations display correctly.

  • Website pages load.

  • Portal pages load.

  • Mobile views are usable.

Odoo’s own basic test guidance asks teams to verify views, reports, websites, record creation, mail templates, translations, filters and data exports.

Data Validation Checklist

  • Compare customer counts.

  • Compare supplier counts.

  • Compare product counts.

  • Compare user counts.

  • Compare open sales orders.

  • Compare open purchase orders.

  • Compare customer invoices.

  • Compare vendor bills.

  • Compare inventory quantities.

  • Compare inventory valuation.

  • Compare receivables.

  • Compare payables.

  • Compare trial balance.

  • Compare tax balances.

  • Compare asset values.

  • Compare bills of materials.

  • Compare active projects.

  • Confirm attachments.

  • Confirm external identifiers.

  • Investigate every unexplained variance.

Sales and CRM Testing

  • Create a lead.

  • Convert the lead into an opportunity.

  • Schedule an activity.

  • Create a quotation.

  • Apply a price list.

  • Apply a discount.

  • Apply taxes.

  • Request approval.

  • Confirm a sales order.

  • Create a delivery.

  • Generate an invoice.

  • Register payment.

  • Create a credit note.

  • Test customer communication.

  • Test sales reports.

Purchase and Inventory Testing

  • Create a request for quotation.

  • Confirm a purchase order.

  • Receive all goods.

  • Receive a partial quantity.

  • Create a backorder.

  • Return products to a supplier.

  • Test warehouse routes.

  • Test internal transfers.

  • Test replenishment.

  • Test dropshipping.

  • Test lots and serial numbers.

  • Test barcode operations.

  • Validate stock valuation.

  • Validate inventory reports.

Accounting Testing

  • Review the chart of accounts.

  • Review journals.

  • Review taxes.

  • Review fiscal positions.

  • Review currencies and exchange rates.

  • Create a customer invoice.

  • Create a vendor bill.

  • Register payments.

  • Reconcile bank transactions.

  • Process a credit note.

  • Test payment terms.

  • Test analytic accounting.

  • Test assets where applicable.

  • Review aged receivables.

  • Review aged payables.

  • Review tax reports.

  • Review profit and loss.

  • Review balance sheet.

  • Compare the trial balance.

Odoo migration end-to-end testing checklist

Manufacturing Testing

  • Review bills of materials.

  • Review work centres.

  • Review routings and operations.

  • Create a manufacturing order.

  • Reserve components.

  • Record production.

  • Record scrap.

  • Process by-products.

  • Test subcontracting.

  • Test quality checks.

  • Test maintenance requests.

  • Test lot and serial traceability.

  • Review product cost.

  • Review manufacturing reports.

Website and Ecommerce Testing

  • Open every important webpage.

  • Test navigation.

  • Test website forms.

  • Test lead generation.

  • Test product pages.

  • Test search and filters.

  • Test price lists.

  • Test customer login.

  • Add products to the cart.

  • Complete checkout.

  • Test shipping calculation.

  • Test payment in sandbox mode.

  • Test order confirmation emails.

  • Test portal order visibility.

  • Test refunds or returns.

  • Test SEO metadata.

  • Test redirects.

  • Test structured data.

  • Test mobile responsiveness.

Integration Testing

  • Test every API connection.

  • Test authentication renewal.

  • Test inbound data.

  • Test outbound data.

  • Test one-way synchronization.

  • Test bidirectional synchronization.

  • Test duplicate prevention.

  • Test failed requests.

  • Test retry mechanisms.

  • Test error logs.

  • Test high-volume batches.

  • Test timezone handling.

  • Test currency handling.

  • Test webhook endpoints.

  • Test EDI flows.

  • Test ecommerce stock updates.

  • Test payment callbacks.

  • Test shipping labels.

  • Confirm monitoring alerts.

Odoo explicitly recommends testing external integrations, workflows spanning multiple applications, data exports, automated actions and server actions before production upgrade.

Performance Testing

  • Measure login time.

  • Measure list-view loading.

  • Measure form loading.

  • Measure report generation.

  • Test large searches.

  • Test large imports.

  • Test scheduled actions.

  • Test concurrent users.

  • Test ecommerce traffic.

  • Review slow queries.

  • Review worker utilization.

  • Review memory consumption.

  • Review database locks.

  • Review integration throughput.

User Acceptance Testing

User acceptance testing should be performed by employees who understand the real process.

UAT Checklist

  • Define test scenarios.

  • Define expected results.

  • Assign testers by department.

  • Provide representative test data.

  • Record actual results.

  • Record screenshots where helpful.

  • Classify issues by severity.

  • Assign issue owners.

  • Retest corrected issues.

  • Obtain process-owner sign-off.

  • Record accepted limitations.

  • Record deferred enhancements.

  • Confirm no critical issue remains open.

Suggested Issue Classification

Severity

Meaning

Go-live impact

Critical

Core business process cannot operate

Blocks go-live

High

Major process is seriously restricted

Usually blocks go-live

Medium

Workaround exists

Business decision required

Low

Minor usability or cosmetic issue

Can enter backlog

Testing should not be declared complete because the planned testing period has ended.

It is complete when agreed critical processes have passed and decision-makers understand the remaining risk.

Phase 10: Prepare Users and Documentation

A technically correct migration can still fail if employees are unprepared.

Users may encounter:

  • New menu locations

  • Changed screens

  • Removed fields

  • Different workflow steps

  • New terminology

  • Different reports

  • New approval responsibilities

  • Changed access rights

User Readiness Checklist

  • Identify affected roles.

  • Document process changes.

  • Create role-based training.

  • Train key users first.

  • Provide practice access.

  • Create quick-reference guides.

  • Update standard operating procedures.

  • Record important training sessions.

  • Explain known differences.

  • Explain support channels.

  • Explain cutover timing.

  • Confirm employee availability.

  • Measure readiness.

  • Schedule refresher training.

Communication Checklist

Communicate:

  • Why the migration is happening

  • What benefits the new version provides

  • Which processes will change

  • Which processes will remain the same

  • When the old system will stop

  • When the new system will become available

  • What employees must complete before cutover

  • Where users should report issues

  • Which temporary limitations may exist

Do not introduce the migration to most employees a few days before launch.

Phase 11: Create the Cutover Plan

Cutover is the sequence of activities that moves live business operations from the old environment to the new one.

Every activity should have an owner, start time, expected duration, dependency and validation step.

Cutover Plan Structure

Activity

Owner

Start

Duration

Dependency

Validation

Stop user transactions

Project manager

8:00 PM

15 min

Business close

Users logged out

Take final backup

DevOps lead

8:15 PM

30 min

Transactions stopped

Backup verified

Run production migration

Technical lead

8:45 PM

3 hours

Backup complete

Migration log reviewed

Deploy custom modules

Technical lead

11:45 PM

45 min

Database upgraded

Module update succeeds

Reconcile critical data

Finance and data owners

12:30 AM

2 hours

System available

Signed reconciliation

Open system to key users

Project manager

2:30 AM

1 hour

Validation complete

Smoke tests pass

Open system to all users

Sponsor

8:00 AM

Go-live approval

Access confirmed

Cutover Checklist

  • Approve final migration date.

  • Confirm the low-usage window.

  • Confirm expected downtime.

  • Inform employees.

  • Inform customers where necessary.

  • Inform suppliers where necessary.

  • Stop or queue integrations.

  • Stop scheduled actions.

  • Stop source-system transactions.

  • Take the final database backup.

  • Take the final filestore backup.

  • Verify backup integrity.

  • Export final delta data where necessary.

  • Record final source-system counts.

  • Record financial balances.

  • Run migration.

  • Deploy target-version custom modules.

  • Run migration scripts.

  • Restore or merge attachments.

  • Configure production credentials.

  • Configure email.

  • Configure payment providers.

  • Configure delivery providers.

  • Restart integrations.

  • Execute smoke tests.

  • Reconcile critical data.

  • Obtain go-live approval.

  • Release the system to users.

Odoo migration production cutover plan

Odoo recommends scheduling production upgrades during a period of minimal use because the production database is unavailable during the process. It also recommends performing a complete rehearsal shortly before production migration.

Rollback and Contingency Planning

A rollback plan explains what the team will do if go-live criteria are not met.

For a standard completed Odoo version upgrade, reverting the upgraded production database to the previous version is not supported as a normal post-success action. Therefore, the decision point and backup strategy must be designed before users begin creating production transactions in the new version.

Contingency Checklist

  • Define go/no-go criteria.

  • Define the final rollback decision time.

  • Confirm the pre-migration backup.

  • Confirm source-environment availability.

  • Define how queued transactions will be handled.

  • Define customer-communication procedures.

  • Define integration rollback procedures.

  • Define DNS rollback procedures where applicable.

  • Define responsibility for the rollback decision.

  • Define how users will be informed.

  • Test backup restoration.

  • Record recovery-time expectations.

A contingency plan is not evidence that the team expects failure. It is evidence that the team understands operational responsibility.

Phase 12: Execute the Production Migration

Production migration should follow the rehearsed runbook. Avoid adding untested steps because someone remembers a final improvement during cutover.

Production Execution Checklist

  • Confirm all participants are available.

  • Open the migration coordination channel.

  • Confirm business transaction freeze.

  • Confirm final backups.

  • Confirm backup timestamps.

  • Record every major step.

  • Record actual start and completion times.

  • Monitor migration logs.

  • Stop when a critical unexpected error occurs.

  • Avoid undocumented manual database changes.

  • Deploy only approved code.

  • Execute approved migration scripts.

  • Confirm module updates.

  • Confirm attachment availability.

  • Confirm database accessibility.

  • Confirm company access.

  • Run technical smoke tests.

  • Run business smoke tests.

  • Complete financial reconciliation.

  • Record go-live approval.

Immediate Smoke Tests

Test at least:

  • User login

  • Customer search

  • Product search

  • Quotation creation

  • Sales-order confirmation

  • Delivery validation

  • Invoice creation

  • Purchase-order confirmation

  • Inventory receipt

  • Report generation

  • Email sending

  • Website availability

  • Ecommerce checkout

  • One critical integration

  • One critical scheduled process

Phase 13: Validate After Go-Live

The first validation should happen before normal business volume resumes.

Post-Migration Validation Checklist

System

  • Users can access the correct companies.

  • Menus and views load.

  • Reports generate.

  • Attachments open.

  • Email sends correctly.

  • Scheduled actions run.

  • Logs do not contain critical recurring errors.

  • Performance is acceptable.

Data

  • Customer and supplier counts match.

  • Product counts match.

  • Inventory quantities match.

  • Inventory valuation matches.

  • Open orders match.

  • Receivables and payables match.

  • Trial balance matches.

  • Tax balances match.

  • Open manufacturing orders match.

  • Attachments are available.

Integrations

  • Ecommerce orders arrive.

  • Inventory updates leave Odoo.

  • Payment callbacks work.

  • Shipping labels generate.

  • Banking connections work.

  • EDI transactions exchange.

  • Monitoring alerts work.

  • Failed transactions can be retried.

Business

  • Sales can create and confirm orders.

  • Warehouse can receive and ship.

  • Finance can invoice and reconcile.

  • Procurement can create purchase orders.

  • Manufacturing can process production.

  • Website visitors can submit forms.

  • Customers can access the portal.

  • Managers can access reports.

Phase 14: Stabilize and Optimize

Migration is not complete immediately after the system opens. The team should enter a controlled stabilization period.

Stabilization Checklist

  • Create a dedicated support channel.

  • Hold daily issue reviews initially.

  • Track issues by severity.

  • Separate defects from training questions.

  • Monitor integrations.

  • Monitor scheduled actions.

  • Monitor server performance.

  • Monitor database growth.

  • Review user adoption.

  • Review unresolved workarounds.

  • Deliver refresher training.

  • Update documentation.

  • Close obsolete user accounts.

  • Secure or decommission the old system.

  • Archive migration files securely.

  • Review project lessons.

  • Approve the stabilization exit.

  • Create the optimization backlog.

Legacy-System Decommissioning Checklist

Do not immediately delete the old environment.

  • Confirm retention obligations.

  • Make the old system read-only.

  • Restrict administrator access.

  • Preserve final backups.

  • Preserve required audit records.

  • Preserve integration logs.

  • Document archive access.

  • Set the final decommission date.

  • Remove unnecessary credentials.

  • Cancel unused infrastructure and licences.

  • Obtain formal decommission approval.

Odoo Migration Checklist by Business Function

Finance

  • Chart of accounts

  • Journals

  • Taxes

  • Fiscal positions

  • Payment terms

  • Currencies

  • Opening balances

  • Receivables

  • Payables

  • Bank accounts

  • Reconciliation

  • Fixed assets

  • Analytic accounts

  • Tax reporting

  • Financial statements

Sales

  • Leads and opportunities

  • Sales teams

  • Price lists

  • Discounts

  • Quotation templates

  • Approval rules

  • Sales orders

  • Customer portals

  • Commission processes

  • Sales reports

Procurement

  • Suppliers

  • Vendor price lists

  • Approval levels

  • Purchase agreements

  • Purchase orders

  • Drop-shipping

  • Supplier returns

  • Purchase reports

Inventory

  • Warehouses

  • Locations

  • Routes

  • Operation types

  • Reordering rules

  • Lots and serial numbers

  • Packages

  • Barcode configuration

  • Stock quantities

  • Inventory valuation

  • Delivery documents

Manufacturing

  • Bills of materials

  • Work centres

  • Operations

  • Manufacturing orders

  • Subcontracting

  • Quality

  • Maintenance

  • Product lifecycle management

  • Costing

  • Traceability

Website and Ecommerce

  • Domain

  • DNS

  • SSL

  • Website pages

  • Menus

  • Forms

  • Products

  • Categories

  • Price lists

  • Payments

  • Shipping

  • Customer accounts

  • Redirects

  • SEO metadata

  • Analytics and tags

  • Structured data

Human Resources

  • Employees

  • Departments

  • Managers

  • Contracts

  • Time off

  • Attendance

  • Expenses

  • Recruitment

  • Payroll integration

  • Access rights

  • Sensitive-data controls

Common Odoo Migration Risks

Risk

Potential impact

Recommended control

Incomplete scope

Unexpected cost and delay

Approve a detailed scope

No code freeze

Repeated migration work

Freeze non-critical development

Poor data quality

Incorrect reports and operations

Clean and reconcile early

Unsupported custom modules

Production failure

Audit and migrate code

Insufficient testing

Business interruption

Test end-to-end workflows

Missing filestore

Broken attachments and images

Validate backup and merge process

Integration failure

Missing or duplicated transactions

Test errors and retries

Weak user involvement

Low adoption and missed issues

Include key users in UAT

No rehearsal

Unpredictable downtime

Run a complete cutover rehearsal

No contingency plan

Prolonged interruption

Define go/no-go and recovery actions

Unclear ownership

Delayed decisions

Assign process and data owners

Poor communication

User confusion

Publish a migration communication plan

Immediate legacy shutdown

Lost audit access

Retain a controlled read-only archive

Migration without optimization

Old problems remain

Review processes and customizations

Common Odoo Migration Mistakes

1. Treating Migration as a Purely Technical Project

Technology moves the database. Business users confirm whether the migrated system still supports operations.

2. Migrating Every Customization

Some custom features may be obsolete, duplicated by standard Odoo, or no longer worth maintaining.

3. Testing Only Happy Paths

Real operations include partial deliveries, backorders, returns, rejected approvals, credit notes, failed payments and missing stock.

4. Ignoring Attachments

The database and filestore must remain aligned. A successful database restoration does not guarantee that documents, product images and attachments are available.

5. Migrating Unnecessary History

Old data increases migration time, validation effort, storage and complexity.

6. Failing to Reconcile Accounting

Record counts alone do not prove financial accuracy.

7. Using Production Credentials in Testing

Test environments should not send live emails, charge customers, or update production marketplaces.

8. Allowing Uncontrolled Changes During Migration

Changes to custom code, configuration and data must follow a controlled process.

9. Skipping Employee Training

A changed workflow can appear to users as a software defect when they were never shown the new process.

10. Launching Without Dedicated Support

Users need a clear place to report issues and receive quick answers during stabilization.

How Long Does an Odoo Migration Take?

Migration duration depends on:

  • Version gap

  • Database size

  • Filestore size

  • Number of custom modules

  • Quality of custom code

  • Number of companies

  • Data quality

  • Integrations

  • Testing requirements

  • User availability

  • Hosting change

  • Process redesign

Illustrative Planning Ranges

Migration type

Typical planning range

Standard small database upgrade

4–8 weeks

Moderate upgrade with limited custom modules

2–4 months

Customized multi-application upgrade

4–9 months

Complex manufacturing or multi-company upgrade

6–15 months

Legacy ERP to Odoo transformation

6–18+ months

These are planning ranges, not guaranteed durations. A smaller version gap is generally easier to manage than skipping several major releases because fewer framework, data-model and functional changes accumulate. Odoo’s current guidance also notes that smaller version gaps should make upgrades easier.

Odoo Migration Cost Factors

Migration cost may include:

  • Assessment

  • Project management

  • Database upgrade

  • Custom-module migration

  • Migration scripts

  • Data cleansing

  • Data mapping

  • Testing

  • Infrastructure

  • Integration changes

  • Training

  • Cutover

  • Support

  • Internal employee time

Main Cost Drivers

Cost driver

Why it matters

Custom modules

Require analysis, redevelopment and testing

Version gap

More accumulated platform changes

Data quality

More cleansing and reconciliation

Historical data

Greater volume and validation effort

Integrations

API and mapping changes

Website customization

Frontend and ecommerce retesting

Manufacturing complexity

More interconnected workflows

Multi-company setup

More accounting, access and process scenarios

Hosting change

Infrastructure and deployment work

User count

More training and adoption support

A migration quotation should clearly distinguish:

  • Standard Odoo database-upgrade work

  • Custom-code migration

  • Data migration

  • Hosting transfer

  • Testing

  • Training

  • Post-go-live support

How to Choose an Odoo Migration Partner

A qualified migration partner should understand both Odoo development and business operations.

Partner Evaluation Checklist

  • Experience with your current Odoo version

  • Experience with the target version

  • Experience \with custom-module migration

  • Experience with your hosting platform

  • Experience with your industry

  • Data-migration capability

  • Accounting-migration capability

  • Integration experience

  • Testing methodology

  • Cutover methodology

  • Rollback and contingency planning

  • Documentation quality

  • Post-go-live support

  • Client references

  • Clear responsibilities

  • Transparent assumptions

  • Upgrade-friendly coding standards

Questions to Ask

  1. How will you audit our current database?

  2. How will you classify custom modules?

  3. Which customizations should be retired?

  4. How will you validate the migrated data?

  5. How many test migrations are included?

  6. Who prepares the business test scenarios?

  7. How will integrations be tested?

  8. How will accounting balances be reconciled?

  9. What is the expected downtime?

  10. Will you perform a full rehearsal?

  11. What happens when a migration script fails?

  12. What post-launch support is included?

  13. How are change requests priced?

  14. Who owns the migrated source code?

  15. How will future upgrades be protected?

Master Odoo Migration Checklist

Planning

  • Migration type confirmed

  • Current and target versions confirmed

  • Current and target editions confirmed

  • Current and target hosting confirmed

  • Scope documented

  • Exclusions documented

  • Budget approved

  • Timeline approved

  • Executive sponsor assigned

  • Project manager assigned

  • Process owners assigned

  • Data owners assigned

  • Risk register created

Current-System Assessment

  • Database and filestore sizes recorded

  • Backup process reviewed

  • Backup restoration tested

  • Standard applications listed

  • Custom modules listed

  • Third-party modules listed

  • Studio changes listed

  • Integrations listed

  • Reports listed

  • Automated actions listed

  • Email templates listed

  • Business workflows documented

Code and Modules

  • Code freeze established

  • Production code tagged

  • Migration branch created

  • Custom modules classified

  • Redundant customizations removed

  • Modules installed on empty target database

  • Views upgraded

  • OWL and JavaScript upgraded

  • Reports upgraded

  • Security upgraded

  • Automated tests upgraded

  • Runtime testing completed

  • Migration scripts completed

Data

  • Source systems identified

  • Migration datasets agreed

  • Historical scope agreed

  • Duplicates removed

  • Master data cleaned

  • Financial data reconciled

  • Inventory reconciled

  • Mapping rules documented

  • Test imports completed

  • Data owners approved results

Infrastructure

  • Target environment provisioned

  • Required packages installed

  • Domains prepared

  • SSL prepared

  • Email prepared

  • Backups configured

  • Monitoring configured

  • Security reviewed

  • Deployment process tested

  • Filestore process tested

Testing

  • Test database created

  • Test environment neutralized

  • Basic application testing completed

  • Data counts compared

  • Accounting reconciled

  • Sales flow tested

  • Purchase flow tested

  • Inventory flow tested

  • Manufacturing flow tested

  • Website and ecommerce tested

  • Integrations tested

  • Reports tested

  • Permissions tested

  • Performance tested

  • UAT completed

  • Critical defects closed

  • Process owners signed off

Readiness

  • Training delivered

  • Procedures updated

  • Key users prepared

  • Support channel prepared

  • Communication sent

  • Cutover plan approved

  • Rehearsal completed

  • Downtime communicated

  • Go/no-go criteria approved

  • Contingency plan approved

Production Migration

  • Transactions frozen

  • Final database backup taken

  • Final filestore backup taken

  • Backup verified

  • Final data counts recorded

  • Production migration completed

  • Custom modules deployed

  • Attachments validated

  • Production credentials configured

  • Integrations restarted

  • Smoke tests passed

  • Financial validation completed

  • Go-live approved

Post-Go-Live

  • Users can access the system

  • Critical workflows operate

  • Accounting balances match

  • Inventory matches

  • Integrations operate

  • Scheduled actions operate

  • Email operates

  • Website operates

  • Support issues tracked

  • Performance monitored

  • Refresher training delivered

  • Legacy system secured

  • Documentation updated

  • Stabilization approved

  • Optimization backlog created

How Browseinfo Can Support Odoo Migration

An Odoo migration combines technical, functional and operational work.

The database must be upgraded or imported correctly, but the migrated environment must also support accounting, inventory, sales, manufacturing, ecommerce, reporting and integrations without disrupting the business.

Browseinfo can support organizations with:

  • Odoo version upgrades

  • Odoo Community to Enterprise migration

  • Legacy ERP to Odoo migration

  • Odoo Online, Odoo.sh and on-premise migration

  • Custom-module migration

  • Odoo Studio migration

  • Database and filestore migration

  • Data cleansing and mapping

  • Accounting-data migration

  • Inventory migration

  • Website and ecommerce migration

  • API and connector migration

  • Migration testing

  • User training

  • Cutover planning

  • Post-go-live support

  • Performance optimization

Frequently Asked Questions About Odoo Migration

1. What is an Odoo migration?

An Odoo migration is the controlled movement of data, configurations, custom modules, integrations and users to a newer Odoo version, another Odoo edition, a different hosting environment, or a new Odoo database.

2. What is the difference between an Odoo migration and an Odoo upgrade?

An Odoo upgrade specifically moves a database from an older Odoo version to a newer version. Migration is a broader term that may also include moving from another ERP, changing hosting, switching editions, or rebuilding the database.

3. What should an Odoo migration checklist include?

It should include scope definition, system assessment, backups, custom-module review, data cleansing, infrastructure preparation, test migration, process testing, user training, cutover, reconciliation and post-go-live support.

4. Can Odoo custom modules be migrated automatically?

Not always. Custom modules must be reviewed and made compatible with the target Odoo version. Models, fields, views, XPath expressions, Python methods, JavaScript, OWL components, reports and security rules may require changes.

5. Why is a test migration necessary?

A test migration allows the team to validate data, custom modules, reports, integrations, permissions and business workflows without disrupting production operations.

6. How many test migrations should be performed?

The required number depends on project complexity. At least one complete test migration and one final rehearsal are strongly recommended. Complex or long-running projects may require several iterations.

7. What data should be migrated to Odoo?

Businesses commonly migrate master data, open transactions, accounting balances, inventory and selected operational history. Older data may remain in a secure read-only archive when it is not required for daily operations.

8. How are attachments handled during an Odoo migration?

Odoo attachments are commonly stored in the filestore as well as referenced by database records. The database and filestore must be backed up, transferred and restored consistently.

9. How long does an Odoo migration take?

A small standard upgrade may take several weeks, while a customized multi-company or manufacturing migration may take several months. Duration depends on custom modules, data, integrations, testing and the version gap.

10. What should be tested after an Odoo migration?

Testing should cover data, access rights, reports, email templates, sales, purchasing, inventory, accounting, manufacturing, ecommerce, integrations, automated actions, exports and complete end-to-end workflows.

11. Can a business continue using Odoo during production migration?

Production access is normally restricted because transactions created after the final migration copy may not appear in the upgraded environment. The cutover should therefore be scheduled during a low-usage period.

12. How can businesses reduce Odoo migration risk?

Start early, establish a code freeze, clean data, audit custom modules, test complete workflows, perform a full rehearsal, train users, maintain verified backups and define clear go-live criteria.

Odoo Migration Checklist: A Complete Step-by-Step Guide
Amit Parik Managing Partner

About the Author

Managing Partner at Browseinfo, specializing in Odoo ERP consulting, implementation, migration, and enterprise solutions. Shares practical insights on ERP systems, business process optimization, and digital transformation.
Book a Consultation

Share this post