[IMP] upgrade: better introduce the upgrade process

closes odoo/documentation#10905

X-original-commit: efe4e4a4bc
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
This commit is contained in:
xpl-odoo 2024-08-30 14:53:09 +00:00
parent 8beedc3783
commit e05a37917d
5 changed files with 103 additions and 72 deletions

View File

@ -46,7 +46,7 @@ Trigger a database upgrade.
.. seealso::
For more information about the upgrade process, check out the :ref:`Odoo Online upgrade
documentation <upgrade/request-test-database>`.
documentation <upgrade-request-test>`.
.. _odoo_online/duplicate:

View File

@ -2,31 +2,55 @@
Upgrade
=======
An upgrade is the process of moving your database from an older version to a newer :doc:`supported
version <supported_versions>` (e.g., Odoo 14.0 to Odoo 16.0). Frequently upgrading is essential as
each version comes with new and improved features, bug fixes, and security patches.
An upgrade involves moving a database from an older version to a newer supported version (e.g., from
Odoo 15.0 to Odoo 17.0). Regular upgrades are crucial as each version offers new features, bug
fixes, and security patches. Using a :doc:`supported version <supported_versions>` is strongly
recommended. Each major version is supported for three years.
.. _upgrade_faq/rolling_release:
Depending on the hosting type and Odoo version used, a database upgrade can be **mandatory**.
.. tabs::
.. group-tab:: Odoo Online
- If a database is on a **major version** (e.g., 15.0, 16.0, 17.0), an upgrade is mandatory
every two years.
- If a database is on a **minor version** (e.g., 17.1, 17.2, 17.4), an upgrade is mandatory
a few weeks after the next version is released. Minor versions are usually released every
three months.
.. group-tab:: Odoo.sh
After the initial three years of support, you will have another two years to complete the
upgrade. You will be notified when an upgrade is required.
.. image:: upgrade/odoo-sh-message.png
:alt: The "unsupported version" popup on Odoo.sh.
.. group-tab:: On-premise
You can stay on the same version indefinitely, even if it is not recommended. Note that the
smaller the version gap, the easier the upgrade should be.
.. spoiler:: Automatic upgrades: Odoo Online's Rolling Release process
The Rolling Release process allows Odoo Online customers to upgrade their database directly from
a message prompt sent to the database administrator as soon as a new version is released. The
invitation to upgrade is only sent if no issues are detected during the automatic tests.
You will receive a notification in your database a few weeks before a mandatory upgrade will be
automatically carried out. You are in control of the process as long as the deadline is not
reached.
.. image:: upgrade/rr-upgrade-message.png
:alt: The upgrade message prompt on the top right of the database
It is strongly recommended to manually :ref:`test the upgrade first <upgrade/test_your_db>`.
Clicking :guilabel:`I want to test first` redirects to `the database manager
<https://www.odoo.com/my/databases/>`_, where it is possible to request an upgraded test database
and check it for any discrepancies.
Concretely, Odoos Upgrade Team performs a silent test upgrade of every database that should be
upgraded. If the test is successful and lasts less than 20 minutes, you can directly trigger the
upgrade from the database. If the test fails, you can test an upgrade using the `database manager
<https://www.odoo.com/my/databases>`_.
It is **not** recommended to click :guilabel:`Upgrade Now` without testing first, as it
immediately triggers the live production database upgrade.
When you are invited to upgrade, it is strongly recommended to :ref:`request an upgraded test
database <upgrade-request-test>` first and spend time :ref:`testing <upgrade-testing>` it.
If the Rolling Release process detects an issue with the upgrade, it will be deactivated until
the issue is resolved.
An automatic upgrade to the next version will be triggered if no action is taken before the
specified due date.
An upgrade does not cover:
@ -40,36 +64,40 @@ An upgrade does not cover:
If your database contains custom modules, it cannot be upgraded until a version of your custom
modules is available for the target version of Odoo. For customers maintaining their own custom
modules, we recommend to parallelize the process by :ref:`requesting an upgraded database
<upgrade/request-test-database>` while also :doc:`upgrading the source code of your custom
<upgrade-request-test>` while also :doc:`upgrading the source code of your custom
modules </developer/howtos/upgrade_custom_db>`.
.. _upgrade-nutshell:
Upgrading in a nutshell
-----------------------
=======================
#. Request an upgraded test database (see :ref:`obtaining an upgraded test database
<upgrade/request-test-database>`).
<upgrade-request-test>`).
#. If applicable, upgrade the source code of your custom module to be compatible with the new
version of Odoo (see :doc:`/developer/howtos/upgrade_custom_db`).
#. Thoroughly test the upgraded database (see :ref:`testing the new version of the database
<upgrade/test_your_db>`).
#. Report any issue encountered during the testing to Odoo by `submitting a ticket for an issue
related to my future upgrade (I am testing an upgrade) <https://odoo.com/help?stage=migration>`_.
<upgrade-testing>`).
#. Report any issue encountered during the testing to Odoo by going to the `Support page and
selecting "An issue related to my future upgrade (I am testing an upgrade)"
<https://www.odoo.com/help?stage=migration>`_.
#. Once all issues are resolved and you are confident that the upgraded database can be used as
your main database without any issues, plan the upgrade of your production database.
#. Request the upgrade for the production database, rendering it unavailable for the time it takes
to complete the process (see :ref:`upgrading the production database <upgrade/upgrade-prod>`).
#. Report any issue encountered during the upgrade to Odoo by `submitting a ticket for an issue
related to my upgrade (production) <https://odoo.com/help?stage=post_upgrade>`_.
to complete the process (see :ref:`upgrading the production database <upgrade-production>`).
#. Report any issue encountered during the upgrade to Odoo by going to the `Support page and
selecting "An issue related to my upgrade (production)"
<https://www.odoo.com/help?stage=post_upgrade>`_.
.. _upgrade/request-test-database:
.. _upgrade-request-test:
Obtaining an upgraded test database
-----------------------------------
===================================
The `Upgrade page <https://upgrade.odoo.com/>`_ is the main platform for requesting an upgraded
The `Upgrade page <https://upgrade.odoo.com>`_ is the main platform for requesting an upgraded
database. However, depending on the hosting type, you can upgrade from the command line
(on-premise), the `Odoo Online database manager <https://odoo.com/my/databases>`_, or your `Odoo.sh
project <https://odoo.sh/project>`_.
(on-premise), the Odoo Online `database manager <https://www.odoo.com/my/databases>`_, or your
`Odoo.sh project <https://www.odoo.sh/project>`_.
.. note::
The Upgrade platform follows the same `Privacy Policy <https://www.odoo.com/privacy>`_ as the
@ -81,7 +109,7 @@ project <https://odoo.sh/project>`_.
.. group-tab:: Odoo Online
Odoo Online databases can be manually upgraded via the `database manager
<https://odoo.com/my/databases>`_.
<https://www.odoo.com/my/databases>`_.
The database manager displays all databases associated with the user's account. Databases
not on the most recent version of Odoo display an arrow in a circle icon next to their name,
@ -115,8 +143,7 @@ project <https://odoo.sh/project>`_.
.. image:: upgrade/odoo-sh-staging.png
:alt: Odoo.sh project and tabs
The **latest production daily automatic backup** is then sent to the `upgrade platform
<https://upgrade.odoo.com>`_.
The **latest production daily automatic backup** is then sent to the Upgrade platform.
Once the upgrade platform is done upgrading the backup and uploading it on the branch, it is
put in a **special mode**: each time a **commit is pushed** on the branch, a **restore
@ -149,7 +176,7 @@ project <https://odoo.sh/project>`_.
$ python <(curl -s https://upgrade.odoo.com/upgrade) --help
An upgraded test database can also be requested via the `Upgrade page
<https://upgrade.odoo.com/>`_.
<https://upgrade.odoo.com>`_.
.. important::
In databases where custom modules are installed, their source code must be up-to-date with
@ -175,22 +202,20 @@ project <https://odoo.sh/project>`_.
.. note::
You can request multiple test databases if you wish to test an upgrade more than once.
.. _upgrade/upgrade_report:
.. note::
When an upgrade request is completed, an upgrade report is attached to the successful upgrade
email, and it becomes available in the Discuss app for users who are part of the "Administration
/ Settings" group. This report provides important information about the changes introduced by
the new version.
.. _upgrade/test_your_db:
.. _upgrade-testing:
Testing the new version of the database
---------------------------------------
=======================================
It is essential to spend some time testing the upgraded test database to ensure that you are not
stuck in your day-to-day activities by a change in views, behavior, or an error message once the
upgrade goes live.
It is essential to test the upgraded test database to ensure that you are not stuck in your
day-to-day activities by a change in views, behavior, or an error message once the upgrade goes
live.
.. note::
Test databases are neutralized, and some features are disabled to prevent them from impacting the
@ -245,9 +270,10 @@ working correctly and to get more familiar with the new version.
This list is **not** exhaustive. Extend the example to your other apps based on your use of Odoo.
If you face an issue while testing your upgraded test database, you can request the assistance of
Odoo by `submitting a ticket for an issue related to my future upgrade (I am testing an upgrade)
<https://odoo.com/help?stage=migration>`_. In any case, it is essential to report any problem
encountered during the testing to fix it before upgrading your production database.
Odoo by going to the `Support page and selecting "An issue related to my future upgrade (I am
testing an upgrade)" <https://www.odoo.com/help?stage=migration>`_. In any case, it is essential to
report any problem encountered during the testing to fix it before upgrading your production
database.
You might encounter significant differences with standard views, features, fields, and models during
testing. Those changes cannot be reverted on a case-by-case basis. However, if a change introduced
@ -265,12 +291,12 @@ module to make it compatible with the new version of Odoo.
- Server actions in the action menu on form views, as well as by selecting multiple records on
list views
.. _upgrade/upgrade-prod:
.. _upgrade-production:
Upgrading the production database
---------------------------------
=================================
Once the :ref:`tests <upgrade/test_your_db>` are completed and you are confident that the upgraded
Once the :ref:`tests <upgrade-testing>` are completed and you are confident that the upgraded
database can be used as your main database without any issues, it is time to plan the go-live day.
Your production database will be unavailable during its upgrade. Therefore, we recommend planning
@ -288,15 +314,15 @@ day before upgrading the production database is also recommended.**
- Business interruptions (e.g., no longer having the possibility to validate an action)
- Poor customer experience (e.g., an eCommerce website that does not work correctly)
The process of upgrading a production database is similar to upgrading a test database with a few
exceptions.
The process of upgrading a production database is similar to upgrading a test database, but with a
few exceptions.
.. tabs::
.. group-tab:: Odoo Online
The process is similar to :ref:`obtaining an upgraded test database
<upgrade/request-test-database>`, except for the purpose option, which must be set to
<upgrade-request-test>`, except for the purpose option, which must be set to
:guilabel:`Production` instead of :guilabel:`Test`.
.. warning::
@ -306,8 +332,8 @@ exceptions.
.. group-tab:: Odoo.sh
The process is similar to :ref:`obtaining an upgraded test database
<upgrade/request-test-database>` on the :guilabel:`Production` branch.
The process is similar to :ref:`obtaining an upgraded test database <upgrade-request-test>` on
the :guilabel:`Production` branch.
.. image:: upgrade/odoo-sh-prod.png
:alt: View from the upgrade tab
@ -337,7 +363,8 @@ exceptions.
$ python <(curl -s https://upgrade.odoo.com/upgrade) production -d <your db name> -t <target version>
An upgraded production database can also be requested via the `Upgrade page
<https://upgrade.odoo.com/>`_.
<https://upgrade.odoo.com>`_.
Once the database is uploaded, any modification to your production database will **not** be
present on your upgraded database. This is why we recommend not using it during the upgrade
process.
@ -347,14 +374,14 @@ exceptions.
a filestore. Therefore, the upgraded database filestore must be merged with the production
filestore before deploying the new version.
In case of an issue with your production database, you can request the assistance of Odoo by
`submitting a ticket for an issue related to my upgrade (production)
<https://odoo.com/help?stage=post_upgrade>`_.
In case of an issue with your production database, you can request the assistance of Odoo by going
to the `Support page and selecting "An issue related to my future upgrade (I am testing an upgrade)"
<https://www.odoo.com/help?stage=migration>`_.
.. _upgrade/sla:
.. _upgrade-sla:
Service-level agreement (SLA)
-----------------------------
=============================
With Odoo Enterprise, upgrading a database to the most recent version of Odoo is **free**, including
any support required to rectify potential discrepancies in the upgraded database.
@ -363,8 +390,10 @@ Information about the upgrade services included in the Enterprise Licence is ava
:ref:`Odoo Enterprise Subscription Agreement <upgrade>`. However, this section clarifies what
upgrade services you can expect.
.. _upgrade-sla-covered:
Upgrade services covered by the SLA
===================================
-----------------------------------
Databases hosted on Odoo's cloud platforms (Odoo Online and Odoo.sh) or self-hosted (On-Premise) can
benefit from upgrade services at all times for:
@ -378,8 +407,10 @@ benefit from upgrade services at all times for:
Upgrade services are limited to the technical conversion and adaptation of a database (standard
modules and data) to make it compatible with the version targeted by the upgrade.
.. _upgrade-sla-not-covered:
Upgrade services not covered by the SLA
=======================================
---------------------------------------
The following upgrade-related services are **not** included:

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -9,7 +9,7 @@ for guidance on how to upgrade a database without customized modules.
We consider a custom module, any module that extends the standard code of Odoo and that was not
built with the Studio app. Before upgrading such a module, or before requesting its upgrade, have a
look at the :ref:`upgrade/sla` to make sure who's responsible for it.
look at the :ref:`upgrade-sla` to make sure who's responsible for it.
While working on what we refer to as the **custom upgrade** of your database, keep in mind the goals
of an upgrade:
@ -60,8 +60,8 @@ Step 2: Request an upgraded database
Once the developments have stopped for the custom modules and the implemented features have been
challenged to remove redundancy and unnecessary code, the next step is to request an upgraded test
database. To do so, follow the steps mentioned in :ref:`upgrade/request-test-database`, depending on
the hosting type of your database.
database. To do so, follow the steps mentioned in :ref:`upgrade-request-test`, depending on the
hosting type of your database.
The purpose of this stage is not to start working with the custom modules in the upgraded database,
but to make sure the standard upgrade process works seamlessly, and the test database is delivered
@ -175,7 +175,7 @@ Step 4: Upgraded database
=========================
Once the custom modules are installable and working properly in an empty database, it is time to
make them work on an :ref:`upgraded database <upgrade/request-test-database>`.
make them work on an :ref:`upgraded database <upgrade-request-test>`.
To make sure the custom code is working flawlessly in the new version, follow these steps:
@ -243,8 +243,8 @@ Running and testing upgrade scripts
.. group-tab:: Odoo.sh
As explained on the `Odoo.sh` tab of :ref:`upgrade/request-test-database`, Odoo.sh is
integrated with the upgrade platform.
As explained on the `Odoo.sh` tab of :ref:`upgrade-request-test`, Odoo.sh is integrated with
the upgrade platform.
Once the upgrade of a staging branch is on "Update on commit" mode, each time a commit is
pushed on the branch, the upgraded backup is restored and all the custom modules are updated.
@ -277,9 +277,9 @@ are consistent and that nothing was lost during the upgrade process.
Things to pay attention to:
- Views not working: During the upgrade, if a view causes issues because of its content, it gets
disabled. You can find the information on disabled views on the :ref:`Upgrade report
<upgrade/upgrade_report>`. This view needs to be activated again (or removed if not useful anymore).
To achieve this, we recommend the use of upgrade scripts.
disabled. You can find the information on disabled views on the Upgrade report. This view needs to
be activated again (or removed if not useful anymore). To achieve this, we recommend the use of
upgrade scripts.
- :doc:`Module data <../tutorials/define_module_data>` not updated: Custom records that have the
``noupdate`` flag are not updated when upgrading the module in the new database. For the custom
data that needs to be updated due to changes in the new version, we recommend to use upgrade
@ -293,9 +293,9 @@ Step 5: Testing and rehearsal
When the custom modules are working properly in the upgraded database, it is crucial to do another
round of testing to assess the database usability and detect any issues that might have gone
unnoticed in previous tests. For further information about testing the upgraded database, check
:ref:`upgrade/test_your_db`.
:ref:`upgrade-testing`.
As mentioned in :ref:`upgrade/upgrade-prod`, both standard upgrade scripts and your database are
As mentioned in :ref:`upgrade-production`, both standard upgrade scripts and your database are
constantly evolving. Therefore it is highly recommended to frequently request new upgraded test
databases and ensure that the upgrade process is still successful.
@ -309,4 +309,4 @@ Step 6: Production upgrade
==========================
Once you are confident about upgrading your production database, follow the process described on
:ref:`upgrade/upgrade-prod`, depending on the hosting type of your database.
:ref:`upgrade-production`, depending on the hosting type of your database.