Skip to content

Documentation / Code and addons

Managing Modules

See, install, upgrade and uninstall the Odoo modules of a service.

Every Odoo service has modules installed in its database: Odoo's own, such as CRM or Accounting, and the ones of the addons you deployed. An addon is code calmo.cloud copies onto the service from a repository; a module is what Odoo installs from that code. The Modules tab shows the modules and lets you change them.

Viewing modules #

  1. Open the service from the Odoos list
  2. Click the Modules tab

The list shows each module's technical name, name, state and version. The Apps only filter is on by default and hides technical modules. Most custom and App Store modules are technical modules, so switch the filter off to see them.

calmo.cloud learns about the modules from the calmo.cloud module inside Odoo, which reports every change, and from every module operation you run here. A database you moved from elsewhere may not have that module installed. The list then catches up the next time you refresh the apps list or install a module.

Module states #

State Meaning
Installed The module is installed and in use
Uninstalled Odoo knows the module, but it is not installed
To Install, To Upgrade, To Remove Odoo scheduled a change that did not finish, for example because an install ran into an error
Uninstallable Odoo can't install the module, for example because it is written for another Odoo version

Refreshing the apps list #

Odoo only offers the modules in its apps list. When you deploy an addon, calmo.cloud copies its code onto the service, but Odoo doesn't list it until the apps list is refreshed. Click Refresh apps list and Odoo looks for modules that are new since the last refresh. The service keeps running while it does.

You rarely need this on its own: installing a module by its technical name refreshes the list on the way.

Installing modules #

Click Install modules, enter one or more technical names, for example sale_management or the name of an addon you just deployed, and confirm. Odoo installs them together with the modules they depend on. A module that is installed already is skipped: installing it again would reload its data and could overwrite changes made in Odoo.

The service stops while Odoo installs the modules and starts again afterwards. A live service is backed up first; you can switch that off in the dialog. The Actions tab shows the progress. A module whose addon is still being deployed can't be installed until the deployment finished. The same goes for any module while one of the service's repositories is still being read on GitHub, for example right after you attached it or added a module to it: the Discovery column on the Repositories tab shows when that is done.

The Install and Upgrade buttons next to a module in the list act on that one module right away, without a safety backup. On a live service, use Install modules or Upgrade all modules instead.

Upgrading all modules #

Upgrade all modules upgrades every installed module, so the database matches the Odoo and addon code on the service. Run it after a pull built a newer Odoo image: the service page and this tab show Modules need an upgrade until you do (see Updating the base image). Run it as well when pages fail with an error such as column … does not exist after the image changed or after a restore, even without that notice: upgrading only the module named in the error leaves the others behind. On a large database it can take many minutes, and the service is stopped the whole time. A live service is backed up first. It can't start while any addon is still being deployed to the service, or while one of its repositories is still being read on GitHub.

Uninstalling a module #

Click Uninstall next to an installed module and type its technical name to confirm. Odoo deletes everything the module stored, such as its tables, records and settings, and only restoring a backup brings it back. A live service is backed up first.

Nothing is uninstalled while other installed modules depend on the module: the notification names them. calmo.cloud only checks this once the service has stopped, so the service still restarts briefly, and a live service is still backed up first. Uninstall those modules first, or uninstall them together through the API or an AI assistant. base and the calmo.cloud module havsh can't be uninstalled.

Who may change modules #

On an Odoo another team shares with yours, installing and upgrading modules and refreshing the apps list need the Developer role, and uninstalling a module needs the Manager role. See Roles.

Through the API and AI assistants #

The REST API (Service Modules) and AI assistants can list the modules of a service and run the same operations: install, upgrade, upgrade all, uninstall and refresh the apps list, for up to 50 modules at once. Each operation reports what it did to every module, for example that one was installed and another one was not found. An operation that was interrupted, for example because calmo.cloud was updated while Odoo worked, is marked as failed within about an hour, with each module's outcome unknown: check that the service is running and look at its modules before you run it again. The API token needs the permission Install, upgrade and uninstall Odoo modules.

Core vs. addon modules #

  • Core modules come built into Odoo (e.g., CRM, Accounting, Inventory)
  • Addon modules are extensions you've deployed via calmo.cloud from GitHub repositories

Both types appear in the modules list, giving you a complete picture of what's running on each service.