Odoo Field Compatibility
Fields and models change between Odoo versions. This guide covers which fields are removed, renamed, or changed across versions and editions, and how to audit a custom module before upgrading.
The problem
Fields and models change between Odoo versions. They may be removed, renamed, have type changes, or move between the Community and Enterprise editions. A custom module that references them directly breaks when the definition no longer matches the target.
Why it matters
Field references appear in models, views, domains, ir.model.access.csv, and record rules. A single missing field can prevent a model from loading and block the entire module from installing.
Common symptoms
FieldDoesNotExisterrors on install or upgrade- Type mismatch warnings between source and target
- Missing data after migration
- Tracebacks referencing unknown fields or models
Example risk
A custom module referencing sale.order.note when it does not exist in the target version's Community edition will fail to load the related model:
<field name="note"/>
x_summary = fields.Char(related="order_id.note")If the field is absent in the target edition, both the view and the related field definition must be updated.
How to audit it
- Use the Field Validator to search for each custom field and model in the target version.
- Cross-reference results with the Odoo changelogs.
- Confirm the target database edition matches the fields your module depends on.
How Odoo Doctor helps
The Field Validator searches indexed Odoo source for field existence, and the Migration Audit checks field references in your code against known changes. See the missing field reference finding for details.
Manual testing needed
Install on a clean target database and exercise every view, domain, computed field, and record rule that references a field. Confirm data loads and relationships resolve as expected.
Check field existence in the target version
Search indexed Odoo source to confirm whether a field or model exists.
Validate Odoo FieldsFrequently asked questions
Why do field references break after a version upgrade?
Fields and models are removed, renamed, or change type between Odoo versions. A reference to a field that no longer exists raises a FieldDoesNotExist error or a traceback when the model loads.
How do Community and Enterprise editions affect field compatibility?
Some fields and models live only in Enterprise. A module that references an Enterprise field will fail on a Community target. Check the edition of the target database, not just the version number.
What is the difference between the Field Validator and the Migration Audit?
The Field Validator searches indexed Odoo source for whether a specific field or model exists in a version. The Migration Audit scans your whole module ZIP and flags field references against known changes alongside other risks.
Does field validation cover stored data?
No. Validation confirms whether a field or model definition exists in the target source. Migrating existing records and confirming data integrity still requires testing in a clean target database.