Context
OpenUpgrade is an Open Source project developed by the OCA that allows you to migrate an Odoo Community Edition database from one version to another. The publisher, Odoo SA, does not propose a migration solution for the Odoo Community Edition, and recommends the use of OCA's OpenUpgrade in this situation.
In Concrete Terms
OpenUpgrade is mainly a folder containing the migration scripts (python and SQL) for each module installed on the instance you wish to migrate. So to migrate a database with ‘account’ installed, the migration scripts must have been developed for all the modules on which the ‘account’ module depends. (‘base’, ‘product’, ‘uom’, etc...)
This is a complex project: to develop the migration scripts, you need to know how the module works in the current version, how the module works in the new version, and how to manipulate the ORM and perform SQL queries to transform the data. There may be performance issues : If a computed field is added to a table with millions of records (account.move.line, stock.move.line, etc.), you need to be able to optimize its addition, to avoid the migration taking hours (or even days).
This project is pretty thankless. There's no “visible” functionality provided by the tool, nothing to test on a runboat. This project doesn't require any “functional” profile, only very “technical” ones.
This project is difficult to finance. To be able to use OpenUpgrade for a customer's project, migration scripts must have been developed for all modules installed on the customer's instance, and for all versions between the customer's version and the target version. This is a lot of work for a single integrator. As a result, the project takes a long time to develop each year. For version 17, released in October 2023, the “base” module was completed one year later, in October 2024.
Finally, reviewer work is a very demanding and time-consuming task. As a result, many pull requests can remain open for months on end.
Previously
From version 8 to version 14, OpenUpgrade was funded by the OCA, via an annual RFQ, to migrate the odoo-community.org database. This method supported the development of OpenUpgrade, but had its limitations.
It included a lot of work that had nothing to do with OpenUpgrade, such as the migration of numerous custom modules installed on the OCA base, possible corrections of incorrect data, as well as the testing and validation process with the customer.
Estimating the forecast workload at the outset in a RFQ is not appropriate for this project. In some years, the Odoo integrators lost money working on this project. In the case of major redesigns (such as the accounting apocalypse of version 13.0), estimating working time is totally impossible.
Furthermore, for the OCA board, managing an OCA ERP migration project every year was a time-consuming task with little added value.
Since Autumn 2024
OCA decided to refinance OpenUpgrade with other terms and conditions. A small team of experts has been set up to develop the migration scripts each year.
The team has grown in size, and now includes members from Hunki Enterprises, Tecnativa, Forgeflow and GRAP.
The work is now carried out on a contract basis, rather than on a fixed-price basis.
We have defined a more restricted perimeter of modules to be migrated.
The challenges are numerous:
Improving our ability to estimate the amount of work required each year on OpenUpgrade
Finding the best way to move forward on this project as a team, with people who are also involved in other projects.
Review the PRs produced by other community members in a highly reactive way, to encourage the onboarding of new members.
Making the project sustainable because it is strategic for the OCA.
The Objectives
In the medium term, the aim is to have a minimum usable version of OpenUpgrade around January, 3 months after the official release of the new Odoo version.
In the short term, the aim is to catch up on the backlog of unfunded releases. Ideally, to have an operational version of OpenUpgrade V17 in Q1 2025, and an operational version of Openupgrade V18 in September 2025. If we meet these targets, the team will be available to start work on OpenUpgrade V19, as soon as Odoo SA releases it during the Odoo Experience.
In just two months, the OpenUpgrade V17 project has come a long way! A number of modules (“base”, “product”, “mail” have been completed and merged). Others have been completed and are awaiting validation. (“stock”, “payment”, “account”, etc.). (List of Pull requests to be reviewed, feel free to review some!).
Do you use OpenUpgrade for your Odoo projects? Would you like to contribute but don't have the technical skills at this stage? As you've just read, the OCA is funding a team of experts. Contribute in your own way by becoming an OCA member (yourself and all your colleagues, just €60/year per person), by becoming an OCA sponsor (in your company's name, from €1000) or by becoming an OCA partner, our new program launched in 2025.
Want to know more about OpenUpgrade from a technical point of view? You'll find the documentation here: https://oca.github.io/OpenUpgrade/