{
  "id": 13553963,
  "title": "Odoo 19 Odoo 20 Migration Notes & Fixes",
  "url": "https://urgent.news/2026/10/10/odoo-19-odoo-20-migration-notes-fixes",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-10T22:16:39.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/thezahids/odoo-19-odoo-20-migration-notes-fixes-h6g"
  },
  "original_language": "en",
  "account": "Key errors and migration notes for Odoo 19 to 20:\n\n1. KeyError: ir.model.access - If module fails to load, check security folder. Odoo 20 replaced security/ir.model.access.csv with security/ir.access.csv, streamlining columns. Update old format to new permission mapping format.\n\n2. KeyError: ir.rule - Check record rules alongside access rights if security configuration breaks during registry loading. Update old record rule XML to new access domain format.\n\n3. employee_type renamed to employee_type_id - It's now a Many2one relation, not a Selection field. Update code and logic accordingly.\n\n4. _sql_constraints deprecated - Replace with models.Constraint for explicit SQL constraints. Use grep to find outdated constraints.\n\n5. report_file issue in QWeb reports - Remove report_file field from report actions. Use report_name instead. Test PDF outputs thoroughly.\n\n6. Double-check technical model names - Single-character typos can block module installation. Verify technical names using grep command.",
  "summary": "1. KeyError: 'ir.model.access' If your module fails to load with a KeyError: 'ir.model.access' , check your security folder. Odoo 20 has changed how access rights are structured and named. What changed: The file security/ir.model.access.csv has been replaced by security/ir.access.csv , and the columns have been streamlined. Old format:…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}