# Odoo Upgrades (odooupgrades.com) > Odoo Upgrades is the Odoo upgrade and migration practice of TechUltra Solutions Pvt. Ltd. (single office in Ahmedabad, India; Odoo Gold Partner since 2021; 400+ Odoo implementations; clients in 75+ countries; delivery partners in the UK, South Africa, Peru, Italy and France). It upgrades Odoo Community and Enterprise databases, including custom and third-party modules, to Odoo 20 using its in-house platform, TechUltra Upgrades. Key facts: - TechUltra Upgrades automates upgrades from Odoo 16, 17, 18 and 19 to Odoo 20, running every version hop (for example 17 → 18 → 19 → 20) in one project with resumable checkpoints. - Odoo 15 and older are upgraded through an engineer-assisted path. - It never touches the live database: it works on a copy, neutralises email and payment providers on test systems, and encrypts data in transit and at rest. - An auto-heal library fixes known upgrade errors (e.g. bad XML-ID renames, orphan views) and retries the hop. - Custom modules are ported with rules plus AI and reviewed by senior engineers, delivered as a pull request. - Go-live only after trial balance, stock valuation and receivables/payables match the source database. - Deployment: hosted, private Docker, or private SSH on the customer's infrastructure. - Typical timelines (assessment to go-live): standard setup 1–2 weeks; normal customisation 3–6 weeks; heavy customisation 6–12 weeks. - Pricing: quoted per project on complexity after a free assessment. - Every upgrade includes 30 days of hypercare (priority support) after go-live. - Product walkthrough video: https://odooupgrades.com/demo - Odoo gives each major version three years of standard support (Odoo 16 ended Sep 2025, Odoo 17 ended Sep 2026; Odoo 18, 19 and 20 planned to end Sep 2027, 2028 and 2029). - As of 27 Oct 2026 the official Odoo upgrade platform (upgrade.odoo.com) offers 17.0, 18.0 and 19.0 as targets, not 20.0; TechUltra Upgrades already upgrades Odoo 16–19 to 20. - The official Odoo upgrade service requires an Enterprise subscription; TechUltra Upgrades also upgrades Odoo Community. - Odoo 20 requires Python 3.12–3.14 and PostgreSQL 16 or newer (Odoo 19: Python 3.10–3.13, PostgreSQL 13), per odoo/release.py. - Odoo 20 removes record rules (security files become ir.access.csv with a per-right domain), drops _sql_constraints, and makes Material Symbols the default icon font. - The /xmlrpc and /jsonrpc endpoints were deprecated in Odoo 19 and are scheduled for removal in Odoo 22; integrations should move to the JSON-2 API. - First-hand example: in October 2026 a lightly customised client database was upgraded to Odoo 20 in one working day. - Named case study: Sama Zagros (sama-zagros.com) moved from Odoo 17 Enterprise to Odoo 20 Enterprise (hops 17 → 18 → 19 → 20; Sales, CRM, Rental, Inventory, Purchase, Accounting, Point of Sale and Website), in user testing on Odoo 20 as of 30 Oct 2026. - Contact: contact@techultrasolutions.com Full reference with every version's breaking changes, timelines, FAQ, checklist and sources: https://odooupgrades.com/llms-full.txt ## Core pages - [Odoo 20 upgrade](https://odooupgrades.com/odoo-20-upgrade): what's new in Odoo 20, what breaks, and the upgrade process - [TechUltra Upgrades platform](https://odooupgrades.com/techultra-upgrades): features, safety model, deployment options - [Odoo upgrade services](https://odooupgrades.com/odoo-upgrade-services): custom module migration, Community to Enterprise, Odoo.sh and on-premise - [Pricing](https://odooupgrades.com/pricing): how upgrades are quoted by complexity - [Comparison](https://odooupgrades.com/compare/odoo-upgrade-platform-vs-techultra-upgrades): official Odoo upgrade vs OpenUpgrade vs TechUltra Upgrades - [FAQ](https://odooupgrades.com/faq) - [Odoo upgrade estimator](https://odooupgrades.com/odoo-upgrade-estimator): free tool showing hop path, complexity, timeline and breaking changes - [Odoo version support calendar](https://odooupgrades.com/odoo-version-support): end-of-support dates and cost-of-waiting calculator - [Odoo Community upgrade](https://odooupgrades.com/odoo-community-upgrade): upgrading Community databases the official service does not accept - [Free assessment](https://odooupgrades.com/free-assessment): what the free upgrade assessment report contains - [Security](https://odooupgrades.com/security): data protection during upgrades - [Odoo upgrade checklist](https://odooupgrades.com/odoo-upgrade-checklist): 36-step checklist with free PDF - [Odoo 20 changes by app](https://odooupgrades.com/odoo-20-changes): upgrade impact of Odoo 20 per business area (accounting, manufacturing, POS, website, HR, AI, access rights) - [Odoo upgrade services in India](https://odooupgrades.com/odoo-upgrade-services-india): GST, e-invoicing and e-way bill checked on every upgrade - [Product demo video](https://odooupgrades.com/demo) - [Case study: Sama Zagros, Odoo 17 to 20 Enterprise](https://odooupgrades.com/case-studies/sama-zagros-odoo-17-to-20-enterprise) - [Odoo upgraden (Nederlands)](https://odooupgrades.com/nl/odoo-upgraden): Dutch-language overview for Belgium and the Netherlands ## Version paths - [Odoo 19 to 20](https://odooupgrades.com/upgrade/odoo-19-to-odoo-20) - [Odoo 18 to 20](https://odooupgrades.com/upgrade/odoo-18-to-odoo-20) - [Odoo 17 to 20](https://odooupgrades.com/upgrade/odoo-17-to-odoo-20) - [Odoo 16 to 20](https://odooupgrades.com/upgrade/odoo-16-to-odoo-20) - [Odoo 15 to 20](https://odooupgrades.com/upgrade/odoo-15-to-odoo-20) - [Odoo 14 to 20](https://odooupgrades.com/upgrade/odoo-14-to-odoo-20) - [Odoo 13 to 20](https://odooupgrades.com/upgrade/odoo-13-to-odoo-20) - [Odoo 12 to 20](https://odooupgrades.com/upgrade/odoo-12-to-odoo-20) - Also: paths to Odoo 19 (from 16, 17, 18) and Odoo 18 (from 12, 14, 15, 16, 17) at https://odooupgrades.com/upgrade ## Guides - [Odoo 20: what's new and should you upgrade?](https://odooupgrades.com/blog/odoo-20-whats-new-should-you-upgrade) - [Odoo supported versions: which are end of life?](https://odooupgrades.com/blog/odoo-version-support-end-of-life) - [How much does an Odoo upgrade cost?](https://odooupgrades.com/blog/odoo-upgrade-cost) - [Upgrade or reimplement Odoo?](https://odooupgrades.com/blog/upgrade-or-reimplement-odoo) - [Upgrading an Odoo.sh project](https://odooupgrades.com/blog/odoo-sh-upgrade-guide) ## Optional - [About](https://odooupgrades.com/about) - [For Odoo partners (white-label)](https://odooupgrades.com/for-odoo-partners) - [Parent company: TechUltra Solutions](https://techultrasolutions.com) Odoo® is a registered trademark of Odoo S.A. odooupgrades.com is not affiliated with Odoo S.A. # Full reference (last reviewed 2026-10-27) ## Odoo 20 server requirements - Odoo 20: Python 3.12–3.14, PostgreSQL 16 or newer. - Odoo 19: Python 3.10–3.13, PostgreSQL 13 or newer. - Source: MIN_PY_VERSION, MAX_PY_VERSION and MIN_PG_VERSION in odoo/release.py of each version. - The /xmlrpc and /jsonrpc endpoints were deprecated in Odoo 19, still work in Odoo 20 and are scheduled for removal in Odoo 22; the replacement is the JSON-2 API. ## Breaking changes by version (what custom modules must handle) ### Odoo 13 (2019) - Invoices (account.invoice) merged into journal entries (account.move): the biggest accounting data move in Odoo history. - @api.multi and @api.one decorators removed; every method is recordset-based. ### Odoo 14 (2020) - First OWL components land in the web client; legacy JS widgets start to diverge. - Website configurator and theme options reworked; custom themes need review. ### Odoo 15 (2021) - Front-end assets are declared in the manifest assets key instead of inheriting XML asset templates. ### Odoo 16 (2022) - Web client moves to OWL 2; legacy widgets and field widgets must be rewritten. - fields_view_get replaced by get_views; view-manipulation overrides break. ### Odoo 17 (2023) - attrs and states removed from views: visibility rules become plain Python expressions on invisible/readonly/required. - name_get deprecated in favour of _compute_display_name. - Python 3.10 becomes the minimum runtime, so servers and dependencies need upgrading too. ### Odoo 18 (2024) - views renamed to across XML views and actions. - Many JS patches and client actions need updating for the reworked OWL services. ### Odoo 19 (2025) - SQL constraints move from _sql_constraints to declarative models.Constraint objects. - ORM internals reorganised under odoo.orm; imports and private API calls need updating. - The /xmlrpc and /jsonrpc endpoints are deprecated (removal planned for Odoo 22); integrations should move to the JSON-2 API. ### Odoo 20 (2026) - _sql_constraints and _constraints no longer supported at all, so un-ported modules silently lose their constraints. - Security files change: ir.model.access.csv becomes ir.access.csv with an operation column and a per-right domain, and record rules (ir.rule) are removed, so custom access rights and rules must be rewritten. - Accounting: parent accounts replace account groups, account codes become optional, depreciation models replace asset models. - Server minimums rise to Python 3.12 and PostgreSQL 16 (Odoo 19 accepted Python 3.10 and PostgreSQL 13). - Material Symbols becomes the default icon font; Font Awesome is kept only as a legacy fallback, so fa fa-* icons in custom views should be migrated. - AI agents that create and update records and connect over MCP; new offline mode for field users. ## Odoo 20 as an upgrade target (checked 27 Oct 2026) - Official Odoo upgrade platform: Not yet. upgrade.odoo.com currently offers 17.0, 18.0 and 19.0 as targets. - OpenUpgrade (OCA, Community): In progress. The 20.0 branch has started; module coverage is still being built. - TechUltra Upgrades: Available now. Odoo 16, 17, 18 and 19 → 20, Community and Enterprise, with 20.0 upgrade scripts built into the platform. ## Odoo standard support windows (three years per major version) - Odoo 20: released Sep 2026; standard support planned to end Sep 2029. - Odoo 19: released Sep 2025; standard support planned to end Sep 2028. - Odoo 18: released Oct 2024; standard support planned to end Sep 2027. - Odoo 17: released Nov 2023; standard support ended Sep 2026. - Odoo 16: released Oct 2022; standard support ended Sep 2025. - Odoo 15: released Oct 2021; standard support ended. - Odoo 14: released Oct 2020; standard support ended. ## Typical timelines by customisation level (assessment to go-live) - Standard setup: Standard Odoo apps, configuration only, 0–5 small custom modules. Automated migration: Hours. Testing: 1–2 weeks. Total: 1–2 weeks. Downtime: A few hours (cut-over). - Normal customisation: 5–25 custom or App Store modules, a few integrations, custom reports. Automated migration: Hours. Testing: 2–4 weeks. Total: 3–6 weeks. Downtime: Half a day (cut-over). - Heavy customisation: 25+ custom modules, deep core overrides, custom OWL UI, multiple integrations, large databases. Automated migration: Hours to a day. Testing: 4–8 weeks. Total: 6–12 weeks. Downtime: Overnight or weekend window. - First-hand example: in October 2026 a lightly customised client database was upgraded to Odoo 20 in one working day, with the live system running throughout. ## Version path pages - Odoo 12 to Odoo 20: https://odooupgrades.com/upgrade/odoo-12-to-odoo-20 - Odoo 13 to Odoo 20: https://odooupgrades.com/upgrade/odoo-13-to-odoo-20 - Odoo 14 to Odoo 20: https://odooupgrades.com/upgrade/odoo-14-to-odoo-20 - Odoo 15 to Odoo 20: https://odooupgrades.com/upgrade/odoo-15-to-odoo-20 - Odoo 16 to Odoo 20: https://odooupgrades.com/upgrade/odoo-16-to-odoo-20 - Odoo 17 to Odoo 20: https://odooupgrades.com/upgrade/odoo-17-to-odoo-20 - Odoo 18 to Odoo 20: https://odooupgrades.com/upgrade/odoo-18-to-odoo-20 - Odoo 19 to Odoo 20: https://odooupgrades.com/upgrade/odoo-19-to-odoo-20 - Odoo 16 to Odoo 19: https://odooupgrades.com/upgrade/odoo-16-to-odoo-19 - Odoo 17 to Odoo 19: https://odooupgrades.com/upgrade/odoo-17-to-odoo-19 - Odoo 18 to Odoo 19: https://odooupgrades.com/upgrade/odoo-18-to-odoo-19 - Odoo 12 to Odoo 18: https://odooupgrades.com/upgrade/odoo-12-to-odoo-18 - Odoo 14 to Odoo 18: https://odooupgrades.com/upgrade/odoo-14-to-odoo-18 - Odoo 15 to Odoo 18: https://odooupgrades.com/upgrade/odoo-15-to-odoo-18 - Odoo 16 to Odoo 18: https://odooupgrades.com/upgrade/odoo-16-to-odoo-18 - Odoo 17 to Odoo 18: https://odooupgrades.com/upgrade/odoo-17-to-odoo-18 ## Frequently asked questions Q: How long does an Odoo upgrade take? A: The automated migration itself runs in hours, not weeks. Most of the calendar time is your team testing the upgraded copy. Typical end-to-end timelines are 1–2 weeks for a standard setup, 3–6 weeks with normal customisation, and 6–12 weeks for heavily customised databases. The free assessment gives you an exact timeline and downtime estimate. Q: Can we upgrade directly from Odoo 16 to Odoo 20? A: Yes. You upgrade in one project. Internally TechUltra Upgrades runs and checks every version hop (16→17→18→19→20) with resumable checkpoints, but you only test the final Odoo 20 result. Q: What happens to our custom modules? A: Custom modules are ported to the target version using rule-based rewrites plus AI-assisted porting, then reviewed by senior Odoo engineers. You receive the changes as a reviewable pull request, and automated checks confirm every module installs and its data survives. Q: How is this different from the official Odoo upgrade service? A: Odoo S.A.'s upgrade service migrates standard Enterprise data. Custom modules, third-party apps, testing and fixing remain your responsibility. TechUltra Upgrades covers the full job: Community and Enterprise, custom and third-party modules, data reconciliation, test rounds and go-live. Q: Do you upgrade Odoo Community edition? A: Yes. TechUltra Upgrades supports both Odoo Community and Odoo Enterprise, including Community databases that the official Odoo upgrade platform does not cover. Q: Is our production database at risk during the upgrade? A: No. The platform never upgrades your live database. It works on a copy of your dump, test databases are neutralised (outgoing email and payment providers disabled), all data is encrypted in transit and at rest, engineer access is logged, and your original database stays available as a fallback. Q: How much does an Odoo upgrade cost? A: Every upgrade is quoted individually on its complexity after a free assessment. The quote depends mainly on how many custom or third-party modules need porting, the number of version hops, and database size. You see the quote and timeline before you commit. Q: What support do we get after go-live? A: Every upgrade includes 30 days of hypercare after go-live: priority fixes for anything that behaves differently on the new version, with your original database kept as a fallback. Q: What about Odoo 15 and older versions? A: We upgrade Odoo 8 through 15 too. Older databases go through an engineer-assisted path because they cross larger framework changes, such as the Odoo 13 accounting rewrite. The assessment tells you exactly which hops are automated and which need hands-on work. ## Odoo upgrade checklist (36 steps) ### Plan (4–8 weeks before) - Confirm your current Odoo version, edition (Community or Enterprise) and hosting (Odoo.sh, Online or on-premise). - Choose the target version and check its support window (Odoo 20 is supported until September 2029, planned). - List every installed module and mark it as standard, Enterprise, custom, OCA or App Store. - Identify modules nobody uses any more; plan to uninstall them before the upgrade. - List integrations: payment, shipping, eCommerce, banking, EDI, BI and any API clients. - Agree an owner for testing in each department (finance, sales, warehouse, HR). - Pick a go-live window outside month-end close and peak season. - Get a module-by-module assessment and a quote before committing. ### Prepare data and code (2–6 weeks before) - Take a full backup of the database and filestore, and test that it restores. - Reconcile bank accounts and close open periods you can close. - Record baseline figures: trial balance, stock valuation by product and location, open receivables and payables. - Fix known data problems: duplicate partners, negative stock, unreconciled payments. - Port custom modules to the target version for every version crossed (views, ORM, OWL JavaScript, reports, security files). - Check each third-party app for a target-version release, or plan to port it. - Freeze new customisations until go-live. ### Test upgrade (1–4 weeks before) - Upgrade a copy of production, never the live database. - Neutralise the test copy: disable outgoing email, bank synchronisation and payment providers. - Check every module installs and every menu, list and form opens without errors. - Compare the trial balance, stock valuation and receivables/payables against your baseline. - Run the key business flows end to end: quote to cash, purchase to pay, manufacture, ship, invoice, pay. - Test every integration and printed document (invoices, delivery slips, labels). - Test user access rights role by role, especially custom security rules. - Log issues, fix them, rebuild, and repeat until a round passes cleanly. ### Go live (Cut-over day) - Announce the downtime window to users, customers and integration partners. - Stop scheduled actions and integrations; let users log out. - Take a final backup of the live database and filestore. - Run the upgrade on fresh production data. - Re-check the trial balance and stock valuation against the final backup. - Re-enable scheduled actions and integrations one by one. - Keep the original database available as a fallback. ### After go-live (First 30 days) - Watch error logs, scheduled actions and integration queues daily for the first week. - Collect user issues in one place and prioritise those blocking work. - Train users on the changes that affect their daily work. - Retire the custom modules that the new version made unnecessary. - Delete temporary test copies once you are confident in the new system. - Schedule the next upgrade: one hop a year costs far less than several at once. ## Sources - Odoo documentation: Upgrade: https://www.odoo.com/documentation/latest/administration/upgrade.html (Official upgrade process: test database first, then production.) - Odoo documentation: Standard and extended support: https://www.odoo.com/documentation/master/administration/standard_extended_support.html (Three years of standard support per major version.) - upgrade.odoo.com: https://upgrade.odoo.com (Official upgrade platform; lists 17.0, 18.0 and 19.0 as targets (checked 27 Oct 2026).) - Odoo documentation: Upgrade scripts: https://www.odoo.com/documentation/latest/developer/reference/upgrades/upgrade_scripts.html (How custom modules ship their own migration scripts.) - Odoo documentation: External API: https://www.odoo.com/documentation/latest/developer/reference/external_api.html (XML-RPC and JSON-RPC deprecated in Odoo 19, removal planned in Odoo 22; JSON-2 is the replacement.) - Odoo documentation: Source install: https://www.odoo.com/documentation/latest/administration/on_premise/source.html (Python and PostgreSQL prerequisites for self-hosted servers.) - OCA OpenUpgrade on GitHub: https://github.com/OCA/OpenUpgrade (Open-source upgrade scripts for Community; 20.0 branch still in progress.)