Skip to content
Skillpedia
Deploy & cloud (DevOps)48k · #3729

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/odoo-migration-helper/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/odoo-migration-helper/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
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-helper

Or 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.md
Technical 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

  1. Activate: Mention @odoo-migration-helper, specify your source and target versions, and paste your module code.
  2. Analyze: Receive a list of breaking changes with before/after code fixes.
  3. 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_module on 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.rst for community modules.
  • ✅ Do: Run npm run validate after 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 version in __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.

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#3729
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills