User Guide

Everything you need to know about using Uplift to migrate your Odoo modules.

1. What is Uplift?

Uplift is an automated migration analysis tool for Odoo custom modules. When you need to upgrade your Odoo instance from one version to another (e.g., 16.0 to 18.0), your custom modules often contain code patterns, API calls, and XML structures that have changed or been removed in the newer version.

Uplift scans your module's Python, XML, JavaScript, SCSS, and CSV files against a comprehensive database of 239+ migration rules and identifies every breaking change, deprecation, and required update. For many issues, it can also automatically generate the correct fix and apply it to your code.

Key benefits:

  • Detect breaking changes before they cause production issues
  • Get detailed explanations of what changed and why
  • Auto-fix common migration patterns with one click
  • Support for multi-hop migrations (e.g., 14.0 → 19.0)
  • Export detailed CSV reports for project planning

2. Getting Started

Using Uplift is straightforward and requires no installation. Here's the basic workflow:

1
Upload
Upload your Odoo module as a .zip file
2
Analyze
Select source and target versions, then run analysis
3
Fix & Download
Review issues, apply fixes, and download

Account requirement: Viewing analysis reports is free and doesn't require an account. To apply auto-fixes and download the patched module, you'll need to create a free account and purchase a fix package.

3. Uploading Your Module

On the home page, you'll find the upload area. You can either drag and drop your module or click to browse your files.

Requirements:

  • Format: Your module must be compressed as a .zip file
  • Structure: The zip should contain your module directory with a __manifest__.py or __openerp__.py file
  • Size: Maximum file size is 50 MB
  • Content: Only one module per upload is supported
Tip

Make sure your zip file contains the module at the root level or one directory deep. For example: my_module.zip/my_module/__manifest__.py

4. Selecting Versions

After uploading, you'll select the source version (the Odoo version your module currently runs on) and the target version (the Odoo version you want to migrate to).

Supported versions: 14.0, 15.0, 16.0, 17.0, 18.0, and 19.0

Multi-hop migrations: You can migrate across multiple versions at once. For example, if your module is on 14.0 and you want to go to 18.0, Uplift will analyze all intermediate version changes (14→15, 15→16, 16→17, 17→18) and combine them into a single comprehensive report.

The source version must be lower than the target version.

5. Reading the Analysis Report

Once the analysis completes, you'll see a detailed report with all detected issues. The report includes:

Summary Bar

At the top, you'll see your module name, migration path, total issue count, and an effort estimate (Simple, Medium, or Complex) to help you plan the migration.

Statistics Cards

Four cards show a breakdown: Errors (critical issues that must be fixed), Warnings (recommended changes), Info (optional improvements), and Auto-fixable (issues Uplift can fix automatically).

View Modes

You can view issues in three ways:

  • All Issues — A flat list of every detected issue
  • By File — Issues grouped by source file, useful for fixing file by file
  • By Category — Issues grouped by type (ORM, Views, Fields, etc.)

Filters & Search

Use the filter bar to narrow down issues by severity (error/warning/info), category, or auto-fixable status. The search box lets you find issues by file path or message text.

Issue Cards

Each issue card shows:

  • Severity badge — Color-coded: red (error), amber (warning), blue (info)
  • File path and line number — Exact location in your code
  • Description — What the issue is and why it matters
  • Code diff — Click to expand and see the old code vs. suggested fix
  • Docs badge — Links to official Odoo documentation when available
  • Migration guide — Step-by-step instructions from our knowledge base

Export CSV

Click the "Export CSV" button in the top bar to download all filtered issues as a CSV file for use in spreadsheets or project management tools.

6. Applying Auto-Fixes

Issues marked as "Auto-fixable" can be automatically patched by Uplift. Here's how:

  1. Select issues: All auto-fixable issues are selected by default. You can uncheck any issues you prefer to fix manually.
  2. Sign in: You need a free account to apply fixes. Click "Sign In" or "Create Free Account" if prompted.
  3. Purchase: Click "Apply Selected Fixes & Download" at the bottom of the page. You'll be shown the pricing tier based on your module's complexity, then complete payment via PayPal.
  4. Download: After payment, the patched module is automatically prepared and downloaded as a .zip file.
Post-Patch Validation

After patches are applied, Uplift automatically validates the patched module. It checks Python syntax (compiling every .py file), XML well-formedness, and manifest correctness (required keys, data file references). You'll see a validation banner showing whether the patched module passed or failed, with per-file details for any issues found.

Important

Always test the patched module in a staging environment before deploying to production. While auto-fixes handle common patterns, your module may have custom logic that requires manual adjustments.

7. Pricing

Analysis reports are always free. You can upload and analyze as many modules as you want at no cost. You only pay when you want to apply auto-fixes and download the patched module.

Pricing is based on the complexity of your module (measured by the number of auto-fixable issues):

Starter
$2.99
Up to 10 auto-fixable issues
  • Small modules
  • Simple migrations
  • Few breaking changes
Standard
$6.99
Up to 30 auto-fixable issues
  • Medium modules
  • Multi-hop migrations
  • Moderate complexity
Professional
$14.99
Unlimited auto-fixable issues
  • Large modules
  • Complex migrations
  • Full coverage

The correct tier is automatically selected based on your analysis results. Payment is processed securely via PayPal — no PayPal account is required, you can pay with any credit or debit card.

8. Your Dashboard

After signing in, you can access your dashboard from the navigation bar. The dashboard provides an overview of all your activity:

Statistics

At the top, you'll see summary cards showing your total reports, errors found, warnings, fixes downloaded, and total amount spent.

Reports Tab

  • Search: Filter reports by module name or version
  • Filter: View All, Paid, Unpaid, or Downloaded reports
  • Select & Bulk Actions: Use checkboxes to select multiple reports, then delete or export them in bulk
  • Export: Export selected (or all) reports as a CSV summary file
  • View: Click "View" to open the full analysis report
  • Expand: Click any row to see detailed breakdown (errors, warnings, effort, payment info)
  • Delete: Remove individual reports or use bulk delete for multiple reports

Payments Tab

View your complete payment history including date, type, status, and amount for each transaction.

9. Issue Categories Explained

Uplift analyzes your module using six specialized analyzers across eight issue categories:

ORM & Python

Detects deprecated ORM methods, changed API signatures, removed imports, and Python compatibility issues. Includes workflow engine removal, mail/communication API changes (message_post, mail.channel → discuss.channel), and controller/routing updates. Examples: @api.multi removal, signal_workflow removal, binary_content() deprecation.

Views & XML

Identifies broken XPath expressions, renamed view attributes, deprecated QWeb directives, and view architecture changes. Covers search panel rewrites, pivot/graph view changes, and workflow XML removal. Examples: <tree> → <list>, t-raw → t-out, col_group_by → column_groupby.

Fields

Checks for renamed or removed field types, changed field attributes, and deprecated field parameters. Examples: track_visibility → tracking, oldname removal, related_sudo deprecation, compute_sudo default change.

Security & ACL

Validates access control lists, checks for missing group references, and ensures security file format compliance. Detects public access enforcement, multi-company rule changes, and record rule SQL evaluation requirements.

Assets (JS/SCSS/OWL)

Detects OWL 2 and OWL 3 component migration issues, legacy widget patterns, SCSS variable renames, and asset bundle changes. Covers useSubEnv deprecation, props validation enforcement, and new onWillRender/onRendered lifecycle hooks.

Manifest

Checks module manifest for version format, removed keys, deprecated dependencies, and missing required fields. Covers 70+ module dependency renames/removals across all version hops.

Database & Constraints

Detects SQL constraint issues, index type changes (btree, trigram, btree_not_null), ir.translation removal (translations moved to jsonb columns in v18), and column type validation. Flags manual CREATE INDEX that should use field-level index parameters.

Internationalization

Flags incompatible translation patterns: f-strings inside _() (rejected in v17+), missing _lt() for class-level attributes (v19), ir.translation direct access (removed in v18), and PO file format changes.

10. Frequently Asked Questions

Is the analysis free?

Yes! You can upload and analyze as many modules as you want at no cost. You only pay when you want to apply auto-fixes and download the patched module.

What file format should my module be in?

Your module must be compressed as a .zip file. The zip should contain your module directory with a __manifest__.py (or __openerp__.py) file.

Can I migrate across multiple Odoo versions at once?

Yes! Uplift supports multi-hop migrations. For example, you can analyze a migration from 14.0 directly to 18.0, and Uplift will check all intermediate version changes.

Are all issues auto-fixable?

No. Some issues require manual review and changes due to their complexity. The report clearly marks which issues can be auto-fixed and which need manual attention.

What happens to my uploaded files?

Your files are processed on our servers and automatically deleted within 1 hour. We do not store or share your code. See our Privacy Policy for full details.

Can I re-download the patched module?

The patched module is available for download immediately after payment. Session files are cleaned up after download, so make sure to save your file. If you need to re-download, you can run a new analysis and purchase again.

Do I need a PayPal account to pay?

No. While payment is processed through PayPal, you can pay using any credit or debit card without creating a PayPal account.

How accurate are the auto-fixes?

Auto-fixes handle well-known, deterministic migration patterns. They are accurate for the patterns they cover, but we always recommend testing in a staging environment before deploying to production.

Ready to migrate?

Upload your module and get a free analysis report in seconds.

Get Started