Odoo.sh provides three primary branches: Development, Staging, and
Production.
Development
In the development branch of Odoo.sh, databases are provided for
testing purposes, catering to both developers and end-users. This
environment enables rapid testing of the latest updates in the
associated branches, with data primarily used for unit testing. Each
time a commit is pushed to a development branch, a new database is
automatically created and remains active for up to three days. Given
the purpose of this stage, mail servers and scheduled actions are
automatically restricted to prevent unintended operations.
Staging
Staging branches provide a dedicated testing environment that avoids
exposing production data. The database used in staging is a
sanitized copy of the production database. To optimize storage, only
the latest version is retained, and previous instances are
automatically deleted. This environment is essential for validating
new features prior to their release into production.
Production
The Production branch on Odoo.sh hosts the live database, where all
changes are considered final and have immediate, real-world effects.
When a new commit is pushed to the production branch, the server is
updated with the latest code, and the service is restarted. If the
restart fails, the system reverts to the last successful commit to
ensure the stability and integrity of the live environment. As this
is the actual production database, demo data is excluded, and unit
tests are not run to prevent any interruptions during the update
process.
Merging
Odoo.sh allows you to merge branches using a drag-and-drop action,
making it easy to transfer changes from one branch to another, such
as moving updates from development to staging and then to
production. Therefore, this method should only be used when you're
completely confident in the stability and accuracy of the changes
being deployed.