From antigravity-awesome-skills
Guides migration of Odoo custom modules between v14-v17. Covers API changes, deprecated methods, view syntax updates, and provides before/after code fixes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/antigravity-awesome-skills:odoo-migration-helperThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Migrating Odoo modules between major versions requires careful handling of API changes, deprecated methods, renamed fields, and new view syntax. This skill guides you through the migration process systematically, covering the most common breaking changes between versions.
Migrating Odoo modules between major versions requires careful handling of API changes, deprecated methods, renamed fields, and new view syntax. This skill guides you through the migration process systematically, covering the most common breaking changes between versions.
odoo-upgrade.@odoo-migration-helper, specify your source and target versions, and paste your module code.| Topic | Old (v16) | New (v17) |
|---|---|---|
| View visibility | attrs="{'invisible': [...]}" | invisible="condition" |
| Chatter | <div class="oe_chatter"> | <chatter/> |
| Required/Readonly | attrs="{'required': [...]}" | required="condition" |
| Python minimum | 3.10 | 3.10+ |
| JS modules | Legacy define(['web.core']) | ES module import syntax |
| Topic | Old (v15) | New (v16) |
|---|---|---|
| Website published flag | website_published = True | is_published = True |
| Mail aliases | alias_domain on company | Moved to mail.alias.domain model |
| Report render | _render_qweb_pdf() | _render_qweb_pdf() (same, but signature changed) |
| Accounting move | account.move.line grouping | Line aggregation rules updated |
| Email threading | mail_thread_id | Deprecated; use message_ids |
attrs visibility to Odoo 17<!-- v16 — domain-based attrs -->
<field name="discount" attrs="{'invisible': [('product_type', '!=', 'service')]}"/>
<field name="discount" attrs="{'required': [('state', '=', 'sale')]}"/>
<!-- v17 — inline Python expressions -->
<field name="discount" invisible="product_type != 'service'"/>
<field name="discount" required="state == 'sale'"/>
<!-- v16 -->
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
<!-- v17 -->
<chatter/>
# v15
record.website_published = True
# v16+
record.is_published = True
--update=your_module on each version before pushing to production.HISTORY.rst for community modules.npm run validate after migration to catch manifest or frontmatter issues early.version in __manifest__.py (e.g., 17.0.1.0.0).account_accountant, sign) may have undocumented breaking changes; test on a staging environment with Enterprise license.npx claudepluginhub sickn33/antigravity-awesome-skills --plugin antigravity-bundle-aas-mobile-app-builderGuides migration of Odoo custom modules between v14-v17, covering API changes, deprecated methods, view syntax updates, and code fix examples.
Provides Odoo 17 development references for Python models, ORM, XML views/data, OWL/JS client code, QWeb reports, security, cron actions, migrations, tests, and performance. Ideal for building, fixing, refactoring, or reviewing custom addons.
Scaffolds custom Odoo modules including __manifest__.py, models, views, security; guides inheritance, ORM patterns, onchange/compute methods, and troubleshooting.