The process of upgrading an Odoo installation from an older version to a newer version is not straightforward. Every company implements different customizations and integrations with other products to meet its specific business needs. The main benefits of upgrading to a newer version of Odoo are:
- New modules, features, and integrations that are supported natively without the need for third-party and custom modules.
- Refined and improved core modules.
- Better system performance on the same set of hardware e.g. improved page loading speed.
- Improved data security due to the use of newer versions of Python, PostgreSQL, and other libraries.
- A more refined and improved UI and UX.
- Fixed bugs from previous versions.
Odoo offers free support for enterprise users for the 3 latest versions. This means that even enterprise users can lose their customer support for not performing these upgrades. To perform an upgrade from an older version to a newer one, these considerations will determine the complexity of the upgrade process:
- What Odoo version are you currently running?
- Are you an enterprise user or a community user?
- Which version do you wish to upgrade to?
- How many (if any) custom or third-party modules do you have in your current installation?
- What hosting solution have you implemented?
Depending on the answers to these questions, the upgrade process may not be exactly as the steps covered in this article. That being said, the following steps are not chronological. The order depends on your current implementation of Odoo.
Step 1: System Analysis
It is first and foremost important to understand the difference in features between the version you are currently running and the version you want to upgrade to. Some features which you may have implemented using custom or third-party modules could be supported natively in the new version. This effectively makes your custom modules obsolete. In another scenario, such a feature may still not be supported natively. In such a case, you have to upgrade your custom modules to run with the new Odoo core.
Step 2: Upgrading Modules and Customizations
Once you have understood the changes that you need to make in your custom modules and how to implement your current customizations in the new version of Odoo, it is now time to make the actual changes. Most modules work properly with a few changes to the "manifest" file while others may require more complex code changes.
Step 3: Upgrade the Database
Once you have made the changes, you need to upgrade the Odoo database. There are different approaches to this depending on where your Odoo instance is hosted. It is advisable to run the upgrade to a staging area or a test environment first before running the upgrade on the production database.
- For self-hosted or on-premise hosted setup
On this setup, you can either use the Odoo migration script or upload your database dump to the Odoo website. Using the migration script involves running the command below in your terminal. If the script executes the upgrade smoothly, then this was a successful upgrade. If you encounter errors, you can raise a support ticket with Odoo for technical support to resolve the issue.
python <(curl -s https://upgrade.odoo.com/upgrade) test -d <your db name> -t <target version>
The easier option of the two is uploading a dump of your database to the Odoo website. The Odoo technical team will run the migration script for you and resolve any issues then send you the upgraded database for you to test.
- For Odoo hosted on odoo.sh
For this setup, you can upload your database dump to the Odoo website as described above. This process is well documented in the official Odoo documentation.
- For Odoo hosted on Odoo SAAS
Having this setup means that you do not have any custom or third-party modules. You can request an upgrade in a very straightforward way from your customer portal on the Odoo website. The Odoo technical team will assist you through the upgrade process.
Upgrading Odoo Community Edition
The steps above lie in favor of Odoo enterprise users. In fact, the first and second steps are not necessary for enterprise users since they receive free technical support. Odoo or an Odoo partner will do this for them. However, if you are using Odoo community edition and wish to upgrade to a newer version, you will not have access to this support. However, there are three ways in which to achieve an upgrade with the community edition.
- Upgrade your instance to Odoo enterprise.
This is the easiest and cheapest solution of the three. You can upgrade to the enterprise edition and then use one of the above methods to upgrade your instance to a newer version.
- Do a fresh install with the new version.
This option is suitable for small companies or companies with small systems i.e. few features and barely any customization. In such a scenario, it might be cheaper and quicker to just install a fresh system and migrate your data from the old system.
- Prepare your own migration script
If you do not wish to upgrade to the enterprise edition and your system is too big and complex for a fresh installation, you can prepare your own migration script as described in steps 1 and 2 above. It is however advisable to engage an Odoo expert in this process as it is very technical.