Odoo 19 to Odoo 20 Migration: A Practical Guide for Odoo ERP Upgrade

Odoo 19 to Odoo 20 Migration : Guide, Checklist & Best Practices

Odoo 20 is now available, and businesses running Odoo 19 have a straightforward question to answer: is it time to upgrade, and what should be prepared before moving the production database?

Odoo 20 was released in September 2026 as the next major Odoo version.

For a standard Odoo implementation, moving to a newer version can be relatively structured. For an Odoo environment with custom modules, third-party applications, integrations, accounting configurations, website changes, and years of business data, the process requires considerably more preparation.

An Odoo 19 to Odoo 20 migration should therefore be treated as a business systems project, not simply a software update.

This guide explains what businesses should review before upgrading, how the Odoo upgrade process works, what happens to custom development and integrations, and how to validate the system before going live.

What Is Odoo 19 to Odoo 20 Migration?

Odoo 19 to Odoo 20 migration means upgrading an existing Odoo 19 database to Odoo 20 while preserving the business data and adapting the system to the new version.

Depending on the implementation, the migration can involve:

  • Customer and vendor data
  • Products and inventory
  • Sales and purchase records
  • Accounting data
  • CRM information
  • Website and eCommerce data
  • Custom modules
  • Studio customizations
  • Third-party applications
  • API integrations
  • Automated actions
  • Reports and views
  • Security and access configurations

The amount of work is different for every organization.

An Odoo 19 database with mostly standard applications may require relatively little customization work. An environment containing extensive custom development needs a more detailed technical assessment before the upgrade begins.

Why Move From Odoo 19 to Odoo 20?

Every major Odoo release introduces changes to applications and the underlying technical framework.

The decision to upgrade should therefore consider more than the availability of a new version.

A business should evaluate:

  • Support and lifecycle: Is the current version still within its normal support period, and what is the organization’s longer-term upgrade plan?
  • Business functionality: Are there improvements in Odoo 20 that address current operational requirements?
  • Technical debt: Are older customizations making the Odoo environment difficult to maintain?
  • Integration architecture: Do external systems depend on APIs or technical components that should be reviewed?
  • Future upgrades: Can unnecessary custom development be reduced now to make subsequent upgrades easier?

Odoo itself identifies staying supported, accessing new features, improving performance and security, and reducing technical debt among the goals of an upgrade.

What Should You Check Before Starting an Odoo 20 Migration?

The first step should not be changing the production database.

Start by understanding what is actually running inside the Odoo 19 environment.

1. Create an Odoo Environment Inventory

Document:

  • Odoo applications in use
  • Custom modules
  • Studio customizations
  • Third-party modules
  • External integrations
  • Scheduled actions
  • Automated workflows
  • Custom reports
  • Website customizations
  • eCommerce functionality
  • Accounting localization
  • User roles and access rights
  • External APIs
  • Data exchange with other systems

This inventory becomes the baseline for the migration project.

It also helps identify functionality that may no longer be necessary.

2. Review Customizations

Custom development is often one of the most important parts of an Odoo migration.

A customization developed for Odoo 19 may require changes before it can work correctly on Odoo 20.

Odoo’s upgrade documentation specifically highlights custom modules as an additional consideration. A database containing custom modules cannot be upgraded until compatible versions of those modules are available for the target Odoo version.

Before carrying every customization into Odoo 20, ask:

  • Is this functionality still required?
  • Is the customization still used?
  • Can standard Odoo functionality replace it?
  • Does the code depend on an older technical framework?
  • Does the module need an upgrade script?
  • Does it introduce dependencies on other custom modules?

This review can reduce the amount of code that needs to be maintained after the migration.

Hire Expert Odoo Developers for Tailored ERP Solutions Today

Odoo 20 Custom Module Migration

Custom modules need their own migration workstream.

Odoo’s documented approach for customized databases includes stopping new development, requesting an upgraded database, making custom modules installable on the target version, testing them with the upgraded database, and conducting a rehearsal before production.

A practical process looks like this:

Review the Existing Code

Identify:

  • Python models
  • XML views
  • Security rules
  • Scheduled actions
  • Server actions
  • Dependencies
  • JavaScript components
  • Reports
  • Data files
  • External identifiers

Prepare the Module for Odoo 20

The development team should adapt the module to the target version and resolve compatibility issues.

The exact changes depend on the module.

Odoo’s current development changelog for version 20.0 documents technical changes affecting areas such as the ORM, translations, binary field handling, and module-related functionality.

This is why copying an Odoo 19 custom module directly into an Odoo 20 environment should not be treated as a migration strategy.

Test With Real Migrated Data

A module can install successfully and still fail when it interacts with real business records.

Testing should therefore cover the custom module together with the upgraded database.

Odoo recommends checking that both standard and custom data remain consistent and that no relevant data is lost during the upgrade.

What Happens to Odoo 19 Integrations?

Integrations are another area that should be reviewed before migration.

An Odoo environment may connect to:

  • Payment providers
  • Shipping platforms
  • Marketplaces
  • eCommerce systems
  • CRM platforms
  • Banking systems
  • Tax services
  • Warehouse systems
  • Data warehouses
  • Mobile applications
  • Internal enterprise applications

The migration assessment should identify every integration and document:

  • What data is exchanged?
  • Which direction does the data move?
  • Which API or connector is being used?
  • Does the connector have an Odoo 20-compatible version?
  • What happens if synchronization fails?

This prevents a situation where the ERP upgrade succeeds but an important external workflow stops working.

Odoo 20 and API Compatibility

API compatibility deserves particular attention for businesses with custom integrations.

Odoo’s current documentation states that XML-RPC and JSON-RPC are deprecated. It also documents JSON-2 as the newer external API. The current documentation states that the db service was removed in Odoo 20, while the common and object RPC services are scheduled for removal in Odoo 22.

This distinction matters.

Moving from Odoo 19 to Odoo 20 does not mean every existing XML-RPC integration suddenly stops working.

However, the migration is an appropriate time to inventory these dependencies and plan the transition of integrations that still rely on deprecated RPC services.

For long-term integration architecture, businesses should evaluate whether existing connections should move toward JSON-2.

Odoo 20 Migration: Data Considerations

Business data is usually the most valuable asset inside an ERP system.

The objective is not simply to make records appear in the new database. They need to remain usable and consistent.

Important areas include:

Master Data

  • Customers
  • Vendors
  • Products
  • Product categories
  • Pricelists
  • Units of measure
  • Warehouses
  • Locations
  • Taxes

Transactional Data

  • Quotations
  • Sales orders
  • Purchase orders
  • Deliveries
  • Receipts
  • Invoices
  • Bills
  • Payments
  • Inventory movements

Accounting Data

  • Chart of accounts
  • Journals
  • Taxes
  • Fiscal positions
  • Bank accounts
  • Receivables
  • Payables
  • Reconciliation data
  • Financial reports

Historical Information

Historical records should also be checked where they are important for reporting, compliance, customer service, or operational decision-making.

Should You Clean Your Odoo 19 Data Before Migration?

Migration is a good opportunity to review unnecessary data and configurations, but data deletion should not be treated as a routine part of the upgrade.

Before removing anything, identify:

  • Duplicate records
  • Obsolete configurations
  • Unused custom fields
  • Inactive users
  • Legacy workflows
  • Old automated actions
  • Unused modules
  • Redundant customizations

Data retention requirements should also be considered before removing historical information.

The objective is a cleaner and more maintainable Odoo environment, not simply a smaller database.

Odoo 19 to Odoo 20 Migration Process

A structured migration can be divided into several stages.

Step 1: Discovery and Assessment

Review the Odoo 19 environment and document applications, modules, integrations, customizations, data, and business-critical workflows.

The output should be a migration scope and dependency list.

Step 2: Customization Review

Review custom modules and determine which ones:

  • Need modification
  • Can be replaced with standard functionality
  • Are no longer required
  • Require additional testing

Odoo recommends challenging existing developments before upgrading rather than automatically carrying every customization into the new version.

Step 3: Request an Upgraded Test Database

Odoo’s upgrade process recommends obtaining an upgraded test database before upgrading production.

This creates a controlled environment where the migration can be tested without immediately affecting the live system.

For on-premise environments, Odoo’s documentation also explains how to duplicate a production database into a neutralized testing database.

Step 4: Adapt Custom Modules

Prepare the custom source code for Odoo 20 and make sure the modules can be installed and operate correctly on the target version.

Step 5: Validate the Upgraded Database

Test:

  • Data
  • Custom modules
  • Views
  • Security
  • Automated actions
  • Reports
  • Integrations
  • Business workflows

Odoo’s own upgrade guidance recommends thorough testing before moving to production.

Step 6: Business User Acceptance Testing

Technical teams should not be the only people testing the upgraded environment.

Sales teams should test sales workflows.

Finance teams should test accounting processes.

Operations teams should test inventory and purchasing.

Marketing or eCommerce teams should test website and online ordering processes.

This is where technical compatibility meets real business usage.

Step 7: Migration Rehearsal

Before the final production migration, conduct a rehearsal using the planned migration sequence.

The objective is to understand:

  • What needs to happen before migration
  • How long the process takes
  • Which issues remain
  • Who needs to be available
  • What needs to be validated immediately afterward

Odoo’s customized-database guidance specifically includes testing extensively and performing a rehearsal before the production upgrade.

Step 8: Production Upgrade

Once testing is complete and the team is confident in the result, schedule the production upgrade.

The production database is unavailable while the upgrade is being performed. Odoo also notes that after a successful upgrade, reverting the database to the previous version is not possible through a simple downgrade.

That makes the final migration window and validation process particularly important.

Odoo 20 Migration Testing Checklist

A useful testing plan should cover the applications the business actually uses.

Sales

  • Create quotation
  • Confirm sales order
  • Deliver products
  • Create invoice
  • Register payment

Purchase

  • Create purchase order
  • Receive products
  • Process vendor bill
  • Complete payment workflow

Inventory

  • Receive inventory
  • Transfer stock
  • Deliver products
  • Check stock quantities
  • Review inventory valuation

Accounting

  • Create customer invoice
  • Create vendor bill
  • Reconcile transactions
  • Check taxes
  • Review financial reports
  • Validate receivables and payables

CRM

  • Create lead
  • Convert opportunity
  • Assign salesperson
  • Schedule activities
  • Test automated actions

Website and eCommerce

  • Open website pages
  • Search products
  • Add products to cart
  • Complete checkout
  • Process payment
  • Verify order creation
  • Check customer portal

The exact test plan should be expanded according to the applications and integrations used by the organization.

Odoo 20 Migration and SEO

If the Odoo Website or eCommerce application is part of the implementation, migration testing should include SEO.

The ERP upgrade should not unintentionally create a website migration problem.

Check:

  • Important URLs
  • Page titles
  • Meta descriptions
  • Canonical URLs
  • Internal links
  • Product URLs
  • Category URLs
  • Redirects
  • 404 responses
  • XML sitemap
  • Robots configuration
  • Structured data
  • Image alt text
  • Website forms
  • Product indexing

For eCommerce businesses, pay particular attention to product and category URLs.

A technically successful ERP migration can still create organic-search problems if important pages become inaccessible or their URL structure changes without appropriate handling.

Odoo 20 Migration and AI

Odoo has been adding AI capabilities across its platform, and businesses should consider how their existing configuration interacts with these capabilities when planning an upgrade.

For example, Odoo 19’s official release information already documents AI agents, AI-assisted database queries, AI fields, natural-language search, and other AI-related functionality.

This makes the migration assessment an opportunity to review existing AI-related configurations and determine whether they should be retained, changed, or replaced as part of the move to Odoo 20.

The key point is to evaluate AI functionality as part of the actual Odoo implementation rather than treating “AI” as a separate migration requirement.

Hire Expert Odoo Developers for Tailored ERP Solutions Today

Common Odoo 19 to Odoo 20 Migration Mistakes

1. Starting With Production

The live database should not be the first place where the upgrade is tested.

Use a test or staging environment first.

2. Assuming Custom Modules Will Work Unchanged

Custom modules need to be reviewed and adapted for the target version.

3. Ignoring Third-Party Applications

A third-party application must be checked for target-version compatibility.

4. Forgetting API Dependencies

Deprecated APIs should be identified during the integration assessment.

5. Testing Only the Technical Side

A system can pass technical tests while still creating problems for finance, sales, inventory, or customer service teams.

6. Skipping Data Reconciliation

Record counts and financial figures should be checked against the source environment.

7. Treating Website Migration Separately

When Odoo Website or eCommerce is involved, SEO and customer journeys should be included in the migration test plan.

8. Carrying Unnecessary Customizations Forward

An upgrade is an opportunity to reduce technical debt rather than automatically reproduce every historical customization.

Odoo 19 to Odoo 20 Migration Checklist

Before starting:

  • Confirm current Odoo version
  • Inventory installed applications
  • Document custom modules
  • Review Studio customizations
  • Identify third-party modules
  • Document integrations
  • Review API dependencies
  • Identify business-critical workflows
  • Review website and eCommerce requirements

During preparation:

  • Review custom code
  • Identify obsolete customizations
  • Prepare Odoo 20-compatible modules
  • Request an upgraded test database
  • Prepare migration scripts where required
  • Define UAT scenarios

During testing:

  • Validate data
  • Test custom modules
  • Test integrations
  • Test accounting
  • Test inventory
  • Test sales and purchasing
  • Test CRM
  • Test website/eCommerce
  • Check SEO elements
  • Complete user acceptance testing
  • Perform migration rehearsal

Before go-live:

  • Freeze planned development
  • Confirm final backup
  • Confirm migration window
  • Confirm stakeholders
  • Complete final validation
  • Prepare post-migration monitoring

How Aarav Solutions Can Help With Odoo 19 to Odoo 20 Migration

An Odoo upgrade is easier to manage when the technical and business sides of the implementation are considered together.

Aarav Solutions can help organizations assess their existing Odoo 19 environment, review custom development and integrations, prepare the target environment, validate migrated data, and coordinate testing before production deployment.

Our approach focuses on four stages:

1. Assess
Understand the existing Odoo environment, customizations, integrations, and business processes.

2. Prepare
Identify compatibility requirements and prepare custom modules and integrations for the target version.

3. Validate
Test the upgraded database, data, workflows, integrations, accounting, inventory, and website functionality.

4. Transition
Plan the production migration and provide post-go-live validation and support.

The right migration strategy depends on the existing Odoo architecture. A standard Odoo environment, a heavily customized ERP, and an Odoo implementation integrated with multiple enterprise systems should not all follow the same migration plan.

Hire Expert Odoo Developers for Tailored ERP Solutions Today

Frequently Asked Questions About Odoo 19 to Odoo 20 Migration

1. Can I migrate directly from Odoo 19 to Odoo 20?

Odoo 20 is the next major version after Odoo 19, so the upgrade should be assessed as a version-to-version migration. The exact upgrade process depends on the hosting environment, database configuration, customizations, and applications installed.

2. Will my Odoo 19 data be preserved after upgrading to Odoo 20?

The official upgrade process is designed to convert the database to the target version. Businesses should nevertheless validate important data, configurations, and workflows on an upgraded test database before performing the production upgrade.

3. What happens to custom modules when upgrading from Odoo 19 to Odoo 20?

Custom modules need to be made compatible with the target version. Odoo states that a database containing custom modules cannot be upgraded until compatible versions of those modules are available.

4. Do Odoo 19 integrations automatically work with Odoo 20?

Not necessarily. Each integration should be reviewed and tested. Particular attention should be given to third-party connectors and API dependencies.

5. Does Odoo 20 remove XML-RPC?

Odoo’s current documentation states that XML-RPC and JSON-RPC are deprecated. The db service was removed in Odoo 20, while the common and object services are scheduled for removal in Odoo 22. JSON-2 is the newer external API.

6. How long does an Odoo 19 to Odoo 20 migration take?

There is no standard duration for every business. The timeline depends on database size, custom modules, integrations, applications, data complexity, hosting environment, testing requirements, and the number of business workflows that need validation.

7. Should I clean my Odoo 19 database before migrating?

The migration project is a useful opportunity to review unnecessary customizations, obsolete configurations, and redundant data. However, information should not be deleted without considering business, reporting, legal, and retention requirements.

8. Is an Odoo 20 migration only a technical project?

No. The technical upgrade is only one part of the process. Business users need to validate their workflows, and organizations using Odoo Website or eCommerce should also validate customer journeys and SEO-related elements.

 

Moving from Odoo 19 to Odoo 20 is an opportunity to do more than update the version number.

It provides a chance to review custom development, simplify the existing environment, examine integration architecture, validate business data, and remove technical debt that can make future upgrades more difficult.

The safest approach is straightforward:

  • Understand the current environment.
  • Prepare the customizations.
  • Test the upgraded database.
  • Validate the business processes.
  • Then move to production.

For businesses planning an Odoo 20 migration, the most useful starting point is not a fixed timeline or a generic checklist. It is an assessment of the Odoo 19 environment you actually run today.

A well-planned upgrade can leave the business with a more maintainable ERP, better-understood integrations, cleaner custom development, and a stronger foundation for future Odoo releases.