Odoo does not have an automatic database update when switching between major versions (although if you update within the same version, the database will be optimized and will not work with older versions). Odoo provides enterprise users with database migration.
Community users need to manually migrate their databases from one major release to another.
OCA provides an Open Source upgrade path for Odoo. Using open-upgrade migration scripts we can run migrations for major Odoo versions. You can only upgrade one version at a time
Get OpenUpgrade code from git clone https://github.com/OCA/OpenUpgrade
Check out branch 11.0 when upgrading from odoo 10 to odoo 11
git checkout 11.0
Install the latest version of OpenUpgradeLib.
sudo pip3 install pip install git+https://github.com/OCA/openupgradelib.git@master#egg=openupgradelib
(ensure that the latest version of openupgradelib is installed in the system)
Make a duplicate of the database you want to migrate. And run migration scripts on the duplicated database.
Put Open-upgrade code in Odoo’s directory.
Open the terminal in the Openupgrade folder (OpenUpgrade-11.0) and run the Migration command.
./odoo-bin -d migration(database name) --update all --stop-after-init --data-dir=/tmp(data directory path)
Use this command below odoo 14 versions.
OR
Edit the configuration files and command line parameters to point to the database you are going to upgrade. Add openupgrade path in the conf file. The recommended command line parameters are the
--update all -d migration(database name) --stop-after-init --load=base,web,openupgrade_framework
Use this command above the Odoo 13 version.
The migration log looks like this:
Perform the upgrade and check for any errors. You need to learn a lot about your data and manually clean it up before and after the upgrade. If you get an error, repeat this process multiple times to clean up your data and try again.
Update all modules after migration.
Using open-upgrade we can easily migrate odoo databases to other major versions.