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