Manage branches
On Odoo.sh, there are three main branches available: Development, Staging, and Production.
Development
Within the Development stage on Odoo.sh, databases are offered for testing, serving both developers and end-users. This environment facilitates swift testing of the latest enhancements present in these branches, with the data specifically employed in unit tests. Each new commit to the development stage branches triggers the creation of a new database, with a validity period limited to three days. Given the developmental and testing focus of these branches, automatic restrictions are applied to mail servers and scheduled actions.
Staging
Staging branches serve as a dedicated environment for testing without the exposure of production data. This database represents a sanitized replica of the production database. The most recent database is retained in the staging environment, with older instances being discarded to conserve space. The Staging database is instrumental for testing newly developed features.
Production
The production stage hosts the live Production database. Essentially, any changes made in this stage are considered final and have real-time implications, indicating the presence of the live database. With each new commit to this branch, the production server is updated with the latest code, and the service is restarted. Failure to restart the service after updating the code in the production branch results in a rollback to the previous successful commit, ensuring the protection of the production database.
Given its status as the live database, demo data is not loaded into the production database, and unit testing is omitted due to the potential unavailability of the server for update preparation.
Merging
You can merge branches by a simple drag-and-drop action, allowing you to combine the modifications made in one branch with another. This enables seamless integration of changes from development into staging and subsequently into production. While it is feasible to directly merge changes from development to production, it requires confidence and bold decision-making. It's crucial to note that this approach bypasses the tests in the staging stage. Therefore, it is advised to proceed with direct merging only when you are certain that the updates are accurate and error-free.