Documentation › Get started

Deploying

Push, watch the build, connect. How production updates your modules, and how a failed update is rolled back.

From push to live

Push to GitHub Commit on the branch you want to update and git push . Merging a pull request is a push too.

Watch the build The Builds page shows every build of the project. Open a branch and its History tab lists its builds; the Logs tab streams build.log live while it runs.

Connect When the build is up, click Connect on the branch. It opens Odoo already signed in as the administrator. The arrow next to it ( Connect as ) signs you in as any other user of that database, which is handy to test access rights.

How production updates your modules

Production keeps its database, so a push doesn't reinstall anything. On each production build, Odoo Cloud compares the version in each module's __manifest__.py with the version installed in the database, and updates only the modules whose version went up.

my_module/__manifest__.py

{

"name": "My module",

"version": "18.0.1.0.1", # was 18.0.1.0.0: bump it so production runs the update

"depends": ["sale"],

}

Bump the version whenever you change models, fields, views, security or data files. Without a bump, the new Python code runs but the database is not updated.

A short version such as 1.0.1 is read as <odoo version>.1.0.1 .

When no version changed, the new code is deployed without a database update and without downtime. While modules are being updated, production is stopped for the length of the update.

New modules are not installed on an existing production database. Install them from Odoo's Apps menu (use Update Apps List first).

Rollback on a failed update

Before updating modules (or when requirements.txt changed), Odoo Cloud takes an Update backup of production. If the update fails, or the log contains errors, the backup is restored and the previous build starts again: production keeps running the old code on its old data. Read the build's log, fix the problem, and push again.

The last 5 update backups are kept in the production branch's Backups tab, so you can also go back by hand. See Backups and restore .

Branch settings

Each development or staging branch has a Settings tab:

Behaviour upon new commit : New build (a fresh database), Update previous build (keep the database and update the modules, like production) or Do nothing . Development defaults to a new build, staging to an update.

Module installation (development): only your modules, a full installation, or a list of modules. Also the test suite, test tags, demo data, and another major Odoo version for preparing an upgrade.

Rebuild on a development or staging branch always starts from a fresh database: new demo data, or a new copy of production.

Production has no such settings: every push deploys.