What's New in Odoo 19: Key Changes for Community Edition

Published: March 2026

Odoo 19 is not a typical incremental release. It is the largest structural overhaul of the Odoo codebase in years — renaming 130 models, merging core modules, eliminating legacy constraints, and fundamentally restructuring how user groups and access rights work.

Major changes at a glance

The 18 to 19 step in raw numbers:

  • 443 models affected
  • 130 model renames
  • 51 field renames
  • 416 constraint changes
  • 25 module merges

Module changes in Odoo 19

Module renames

Five modules are renamed. The most impactful: web_editor becomes html_builder.

  • web_editor → html_builder
  • membership → partnership
  • pos_viva_wallet → pos_viva_com

Module merges

25 modules are merged into their parent modules. Key merges:

  • hr_contract → hr — contracts become a core HR feature
  • hr_holidays_contract → hr_holidays
  • sale_async_emails → sale
  • pos_epson_printer → point_of_sale

Database schema changes

130 model renames — the largest refactor ever

Key renames:

  • hr.contract → hr.version — all HR contract references, payroll integration
  • procurement.group → stock.reference — FKs across stock, purchase, sale modules
  • stock.quant.package → stock.package — warehouse package tracking
  • product.packaging → product.uom — packaging merged with UOM handling
  • bus.presence → mail.presence — presence tracking moved from bus to mail
  • hr.candidate → hr.applicant — candidate data merged into applicant records

The res.groups privilege refactoring

Odoo 19 introduces res.groups.privilege and restructures access rights:

  • res.groups.category_id replaced by privilege_id (M2O to res.groups.privilege)
  • res.users.groups_id renamed to group_ids
  • res.groups.users renamed to user_ids
  • The groups_id rename cascades across ir.actions.act_window, ir.actions.server, ir.actions.report, ir.ui.view, and ir.ui.menu

338 legacy constraints removed

Largest constraint cleanup in Odoo history. Of 416 total constraint changes, 338 are removals and 70 are additions.

HR system completely restructured

  • Contracts become versions. hr.contract is renamed to hr.version. The table hr_contract becomes hr_version.
  • Candidates merge into applicants. hr.candidate is merged into hr.applicant.
  • Expense sheets eliminated. hr.expense.sheet is removed. Expenses managed individually.
  • Work entries follow the rename. hr.work.entry.contract_id becomes version_id.

What this means for your migration

  • Manual migration is impractical. 130 model renames, privilege table creation, 338 constraint drops require precise ordering.
  • Custom modules need attention. Code referencing procurement.group, user.groups_id, hr.contract needs updating.
  • Security rules need review. The groups_id rename touches ir_rule.domain_force and related tables.
  • Test migrations are critical. Verify key workflows on staging before production.

Frequently asked questions

When was Odoo 19 released?
Odoo 19 Community Edition was released in late 2025.
Can I upgrade directly from Odoo 18 to 19?
Yes. OCU handles all 130 model renames, 416 constraint changes, and 51 field renames automatically. You can also upgrade from 16 or 17 to 19 — OCU chains the intermediate steps.
Is Odoo 19 a big change from Odoo 18?
Yes — it is the most structurally significant release in years. The largest schema change since Odoo 14.
What happens to hr_contract in Odoo 19?
The hr_contract module merges into hr core, and hr.contract is renamed to hr.version. All data is preserved.
Will my custom modules work on Odoo 19?
Custom modules referencing renamed models or fields will need code updates. OCU handles the core database migration.

Odoo 18 to 19 migration guide | Start your free test migration