Skip to content
odoo-migration-helper logo

Odoo Migration Helper

odoo-migration-helper

Step-by-step guide for migrating Odoo custom modules between versions (v14→v15→v16→v17). Covers API changes, deprecated methods, and view migration.

ranbot-ai/awesome-skills0installs6stars

SKILL.md

Full skill instructions

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

TopicOld (v16)New (v17)
View visibilityattrs="{'invisible': [...]}"invisible="condition"
Chatter<div class="oe_chatter"><chatter/>
Required/​Readonlyattrs="{'required': [...]}"required="condition"
Python minimum3.103.10+
JS modulesLegacy define(['web.core'])ES module import syntax

Odoo 15 → 16

TopicOld (v15)New (v16)
Website published flagwebsite_published = Trueis_published = True
Mail aliasesalias_domain on companyMoved to mail.alias.domain model
Report render_render_qweb_pdf()_render_qweb_pdf() (same, but signature changed)
Accounting moveaccount.move.line groupingLine aggregation rules updated
Email threadingmail_thread_idDeprecated; 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.

More skills from ranbot-ai

react-modernization logo
ranbot-ai/awesome-skills

react-modernization

Master React version upgrades, class to hooks migration, concurrent features adoption, and codemods for automated transformation.

6 1
View
cicd-automation-workflow-automate logo
ranbot-ai/awesome-skills

cicd-automation-workflow-automate

You are a workflow automation expert specializing in creating efficient CI/CD pipelines, GitHub Actions workflows, and automated development processes. Design and implement automation that reduces man

6 1
View
conductor-manage logo
ranbot-ai/awesome-skills

conductor-manage

Manage track lifecycle: archive, restore, delete, rename, and cleanup

6 0
View
c-pro logo
ranbot-ai/awesome-skills

c-pro

Write efficient C code with proper memory management, pointer

6 0
View
clerk-auth logo
ranbot-ai/awesome-skills

clerk-auth

Expert patterns for Clerk auth implementation, middleware, organizations, webhooks, and user sync

6 0
View
mezmo-automation logo
ranbot-ai/awesome-skills

mezmo-automation

Automate Mezmo tasks via Rube MCP (Composio). Always search tools first for current schemas.

6 0
View
fp-types-ref logo
ranbot-ai/awesome-skills

fp-types-ref

Quick reference for fp-ts types. Use when user asks which type to use, needs Option/Either/Task decision help, or wants fp-ts imports.

6 0
View
google-calendar-automation logo
ranbot-ai/awesome-skills

google-calendar-automation

Lightweight Google Calendar integration with standalone OAuth authentication. No MCP server required.

6 0
View
scala-pro logo
ranbot-ai/awesome-skills

scala-pro

Master enterprise-grade Scala development with functional programming, distributed systems, and big data processing. Expert in Apache Pekko, Akka, Spark, ZIO/Cats Effect, and reactive architectures.

6 0
View
python-development-python-scaffold logo
ranbot-ai/awesome-skills

python-development-python-scaffold

You are a Python project architecture expert specializing in scaffolding production-ready Python applications. Generate complete project structures with modern tooling (uv, FastAPI, Django), type hint

6 0
View
onedesk-automation logo
ranbot-ai/awesome-skills

onedesk-automation

Automate Onedesk tasks via Rube MCP (Composio). Always search tools first for current schemas.

6 0
View
googlecalendar-automation logo
ranbot-ai/awesome-skills

googlecalendar-automation

Automate Google Calendar tasks via Rube MCP (Composio). Always search tools first for current schemas.

6 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View