Odoo 18 to Odoo 19 Migration: A Step-by-Step Technical Guide

2026-01-07

Upgrading to a new Odoo version can be a turning point for your business. With Odoo 19, organizations gain access to improved performance, refined workflows, stronger security, and modernized architecture. However, these benefits come with significant technical changes that must be handled carefully, especially for businesses using custom modules.

In this guide, we’ll walk you through the Odoo 18 to Odoo 19 migration process, covering critical structural updates, deprecated features, model changes, and module-level adjustments shared by our technical team. Whether you’re a developer, IT administrator, or business owner, this blog will help you navigate the Odoo migration process efficiently.

Why Upgrade to Odoo 19?

Before diving into the migration steps, let’s understand why Odoo 19 is worth the upgrade.

Odoo 19 introduces:

  1. Smarter AI-driven features
  2. A more refined and responsive user interface
  3. Faster reporting and optimized backend processes
  4. Improved access control and data integrity
  5. Enhanced scalability for growing businesses

Core modules such as Sales, Accounting, Inventory, and Manufacturing benefit from cleaner data models and performance improvements. However, Odoo 19 also includes breaking changes, making proper planning, testing, and backups essential.

Preparing for the Odoo 19 Migration

A successful migration starts with preparation. Skipping this phase often leads to avoidable downtime and errors.

Key Pre-Migration Checklist

Backup Everything

Take full backups of your Odoo 18 database, filestore, and custom modules.

Set Up a Test Environment

Always upgrade a staging or duplicate instance before touching production.

Audit Custom Modules

Identify customizations and check their compatibility with Odoo 19 APIs.

Update Dependencies

Ensure your server supports Python 3.10+ and required libraries for Odoo 19.

Leverage Community & Docs

Use Odoo documentation, community discussions, and migration scripts where applicable

Once preparation is complete, you can move on to handling the technical changes.

Major Technical Changes in Odoo 19

Odoo 19 introduces several core-level refinements focused on modularity, security, and long-term maintainability.

Framework & Core Changes

  1. HTTP routes using type="json" must be updated to type="jsonrpc"
  2. res.partner.title model has been removed
  3. self._context → self.env.context
  4. self._uid → self.env.uid
  5. groups_id → group_ids
  6. Users → user_ids
  7. _apply_ir_rules has been removed and merged into search logic
  8. Domain expressions now use odoo.fields.Domain instead of odoo.osv.Expressions
  9. Authentication updated from
  10. authenticate(request.session.db, creds) → authenticate(request.env, creds)

Registry & Imports

1. from odoo import registry →

from odoo.modules.registry import Registry

2. from odoo.tools.misc import xlsxwriter →

import xlsxwriter

3. Module resource loading updated to

get_resource_from_path()

UI & View Changes

1. <kanban-box> has been replaced with <card> for Kanban views

2. Search view group tags are simplified

(expand="0" string="Group By" removed)

3. FormView controller now requires explicit mode in debug

These changes modernize the UI and improve frontend consistency.

Unit of Measure (UoM) Changes in Odoo 19

UoM handling has been redesigned to remove unnecessary complexity.

What’s Changed?

  1. uom.category table removed
  2. uom_type field removed
  3. factor_inv → relative_factor
  4. category_id → relative_uom_id

Migration Example

Odoo 18

<record id="product_uom_cubic_cm" model="uom.uom">

    <field name="name">cm³</field>

    <field name="category_id" ref="uom.product_uom_categ_vol"/>

    <field name="factor_inv">28.3168</field>

    <field name="uom_type">bigger</field>

</record>

Odoo 19

<record id="product_uom_cubic_cm" model="uom.uom">

    <field name="name">cm³</field>

    <field name="relative_factor">28.3168</field>

    <field name="relative_uom_id" ref="uom.product_uom_litre"/>

</record>

This update enables more intuitive and direct unit relationships.

Also Read: Odoo 19 for Manufacturing: What’s New in 2025

Res Groups & Access Control Changes

Odoo 19 introduces a privilege-based access control system, improving role management.

Key Changes

  1. category_id → privilege_id
  2. New model: res.groups.privilege
  3. ir.module.category is now linked via privileges
  4. users → user_ids
  5. _sql_constraints removed from res.groups

Migration Example

Odoo 18

<record id="group_sale_salesman" model="res.groups">

    <field name="name">User: Own Documents Only</field>

    <field name="category_id" ref="base.module_category_sales_sales"/>

</record>

Odoo 19

<record model="res.groups.privilege" id="res_groups_privilege_sales">

    <field name="name">Sales</field>

    <field name="category_id" ref="base.module_category_sales"/>

</record>


<record id="group_sale_salesman" model="res.groups">

    <field name="name">User: Own Documents Only</field>

    <field name="privilege_id" ref="res_groups_privilege_sales"/>

</record>

This improves clarity, security, and scalability for large teams.

Sales Module Changes

To support better taxation and unit handling:

1. product_uom → product_uom_id

2. tax_id → tax_ids

Ensure all custom sale order logic reflects these updates.

Accounting Module Updates

  1. Deprecated fields removed
  2. Cleaner and simplified search views
  3. Group tags no longer support extra attributes

These changes improve reporting reliability and reduce clutter.

Post-Migration Best Practices

Once migration is complete, follow these steps:

1. Run Automated & Manual Tests

2. Upgrade Modules Using

-u all --dev=all

3. Monitor Logs for Deprecated Warnings

4. Train Users on UI Updates

5. Fine-Tune Server Performance

Conclusion

Migrating from Odoo 18 to Odoo 19 is more than a version upgrade—it’s a strategic investment in performance, security, and future scalability. By addressing key changes across UoM, access control, views, and core framework updates, you can ensure a smooth and reliable transition.

At ERP Consulting 24, we recommend thorough testing, structured planning, and expert validation for every migration project. If you need professional assistance, our Odoo specialists are here to help.