odoo-migration-helper
Helps your agent update Odoo modules to new versions. It fixes code and adapts old features for new ones.
What it does
This guide helps you update your custom Odoo programs from one version to another (like from 14 to 15, or 16 to 17). It shows the most common changes that might break your code and how to fix them.
When to use it
- ✓When you need to upgrade an old Odoo program to a newer version.
- ✓To get a list of things to check before upgrading Odoo.
- ✓To fix errors that appear after an upgrade.
Example of what to ask your AI
“Help me migrate my module from Odoo 16 to 17, focusing on field visibility changes and the 'chatter'.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
You tell me the Odoo versions you are using (old and new) and show me your program's code. I will analyze the necessary changes and give you a step-by-step guide with fixes.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill odoo-migration-helperOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/odoo-migration-helper/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Odoo Migration Helper
Overview
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.
When to Use This Skill
- Upgrading a custom module from Odoo 14/15/16 to a newer version.
- Getting a checklist of things to check before running
odoo-upgrade. - Fixing deprecation warnings after a version upgrade.
- Understanding what changed between two specific Odoo versions.
How It Works
- Activate: Mention
@odoo-migration-helper, specify your source and target versions, and paste your module code. - Analyze: Receive a list of breaking changes with before/after code fixes.
- Validate: Get a migration checklist specific to your module's features.
Key Migration Changes by Version
Odoo 16 → 17
| 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 |
Odoo 15 → 16
| 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 |
Examples
Example 1: Migrate 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'"/>
Example 2: Migrate Chatter block
<!-- v16 -->
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
<!-- v17 -->
<chatter/>
Example 3: Migrate website_published flag (v15 → v16)
# v15
record.website_published = True
# v16+
record.is_published = True
Best Practices
- ✅ Do: Test with
--update=your_moduleon each version before pushing to production. - ✅ Do: Use the official Odoo Upgrade Guide to get an automated pre-upgrade analysis report.
- ✅ Do: Check OCA migration notes and the module's
HISTORY.rstfor community modules. - ✅ Do: Run
npm run validateafter migration to catch manifest or frontmatter issues early. - ❌ Don't: Skip intermediate versions — go v14→v15→v16→v17 sequentially; never jump.
- ❌ Don't: Forget to update
versionin__manifest__.py(e.g.,17.0.1.0.0). - ❌ Don't: Assume OCA modules are migration-ready; check their GitHub branch for the target version.
Limitations
- Covers v14 through v17 only — does not address v13 or older (pre-manifest era has fundamentally different module structure).
- The Odoo.sh automated upgrade path has additional steps not covered here; refer to Odoo.sh documentation.
- Enterprise-specific modules (e.g.,
account_accountant,sign) may have undocumented breaking changes; test on a staging environment with Enterprise license. - JavaScript OWL component migration (v15 Legacy → v16 OWL) is a complex topic not fully covered by this skill.
FAQ
Which Odoo versions does this guide cover?
It covers upgrades between Odoo versions 14, 15, 16, and 17.
What is 'chatter'?
'Chatter' is a section in Odoo where messages, followers, and activities for a record are displayed. How to include it in the code changed between versions 16 and 17.
Do I need to upgrade version by version?
Yes, it is recommended to upgrade from one version to the next (e.g., 14 to 15, then 15 to 16) rather than skipping versions.
Details
Original description by the author
Step-by-step guide for migrating Odoo custom modules between versions (v14→v15→v16→v17). Covers API changes, deprecated methods, and view migration.
Popularity
- GitHub stars
- 48k
- Ranking position
- #3729
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
bun-runtime
Has your agent use Bun to run, organize, and test code. It helps choose Bun over other tools and migrate existing projects.
affaan-m/ECC
database-migrations
Helps your agent make safe changes to databases. It ensures changes can be undone and minimizes downtime.
affaan-m/ECC
deployment-patterns
Sets up deployment and CI/CD workflows, containerization, and rollback strategies to ensure safe releases.
affaan-m/ECC