Skip to main content

click-odoo-contrib

License: LGPL-3 https://badge.fury.io/py/click-odoo-contrib.svg

click-odoo-contrib is a set of useful Odoo maintenance functions. They are available as CLI scripts (based on click-odoo), as well as composable python functions.

Scripts

click-odoo-copydb (beta)

Usage: click-odoo-copydb [OPTIONS] SOURCE DEST

  Create an Odoo database by copying an existing one.

  This script copies using postgres CREATEDB WITH TEMPLATE. It also copies
  the filestore.

Options:
  -c, --config FILE       ...
  ...
  -f, --force-disconnect  Attempt to disconnect users from the template
                          database.
  --unless-dest-exists    Don't report error if destination database already
                          exists.
  --if-source-exists      Don't report error if source database does not
                          exist.
  --filestore-copy-mode   [default|rsync|hardlink]
                          Mode for copying the filestore. Default uses
                          python shutil copytree which copies
                          everything. If the target filestore already
                          exists and just needs an update you can use
                          rsync to rsync the filestore instead. If both
                          filestores are on the same filesystem supporting
                          hardlinks you can use the option hardlink to hard
                          link the files to the inodes of the files of the
                          source directory which saves on space on the disk.
  --help                  Show this message and exit.

click-odoo-dropdb (stable)

Usage: click-odoo-dropdb [OPTIONS] DBNAME

  Drop an Odoo database and associated file store.

Options:
  -c, --config FILE  ...
  ...
  --if-exists        Don't report error if database doesn't exist.
  --help             Show this message and exit.

click-odoo-initdb (stable)

Usage: click-odoo-initdb [OPTIONS]

  Create or initialize an Odoo database with pre-installed modules.

  Almost like standard Odoo does with the -i option, except this script
  manages a cache of database templates with the exact same addons installed.
  This is particularly useful to save time when initializing test databases.

  Cached templates are identified by computing a sha1 checksum of modules
  provided with the -m option, including their dependencies and corresponding
  auto_install modules.

  By default, if the database already exists, the script will fail. With
  --unless-exists, the script succeeds but does nothing when the database
  exists. With --unless-initialized, the script succeeds but does nothing when
  the database exists and is already initialized, otherwise it initializes
  Odoo in the existing database.

Options:
  -c, --config FILE               ...
  ...
  -n, --new-database TEXT         Name of new database to create, possibly
                                  from cache. If absent, only the cache
                                  trimming operation is executed.
  -m, --modules TEXT              Comma separated list of addons to install.
                                  [default: base]
  --demo / --no-demo              Load Odoo demo data.  [default: demo]
  --cache / --no-cache            Use a cache of database templates with the
                                  exact same addons installed. Disabling this
                                  option also disables all other cache-related
                                  operations such as max-age or size. Note:
                                  enabling the cache implies --attachements-
                                  in-db.  [default: cache]
  --cache-prefix TEXT             Prefix to use when naming cache template
                                  databases (max 8 characters). CAUTION: all
                                  databases named like {prefix}-____________-%
                                  will eventually be dropped by the cache
                                  control mechanism, so choose the prefix
                                  wisely.  [default: cache]
  --cache-max-age INTEGER         Drop cache templates that have not been used
                                  for more than N days. Use -1 to disable.
                                  [default: 30]
  --cache-max-size INTEGER        Keep N most recently used cache templates.
                                  Use -1 to disable. Use 0 to empty cache.
                                  [default: 5]
  --attachments-in-db             Store attachements created during database
                                  initialization in the database instead of
                                  the default file store.
  --attachments-in-db-persistent  After initializing the database, set the
                                  `ir_attachement.location` system parameter
                                  to 'db' so that all future attachments are
                                  stored in the database. Implies
                                  --attachments-in-db.
  --unless-exists                 If database exists, do nothing and exit
                                  without error, else create and initialize
                                  it.
  --unless-initialized            If database exists and is initialized, do
                                  nothing and exit without error, else create
                                  and/or initialize it.
  --help                          Show this message and exit.

click-odoo-backupdb (beta)

Usage: click-odoo-backupdb [OPTIONS] DBNAME DEST

  Create an Odoo database backup.

  This script dumps the database using pg_dump. It also copies the filestore.

  Unlike Odoo, this script allows you to make a backup of a database without
  going through the web interface. This avoids timeout and file size
  limitation problems when databases are too large.

  It also allows you to make a backup directly to a directory. This type of
  backup has the advantage that it reduces memory consumption since the
  files in the filestore are directly copied to the target directory as well
  as the database dump.

Options:
  -c, --config FILE           ...
  ...
  --force                       Don't report error if destination file/folder
                                already exists.  [default: False]

  --if-exists                   Don't report error if database does not exist.
  --format [zip|dump|folder]    Output format  [default: zip]
  --filestore / --no-filestore  Include filestore in backup  [default: True]
  --help                        Show this message and exit.

click-odoo-restoredb (beta)

Usage: click-odoo-restoredb [OPTIONS] DBNAME SOURCE

  Restore an Odoo database backup.

  This script allows you to restore databses created by using the Odoo web
  interface or the backupdb script. This avoids timeout and file size
  limitation problems when databases are too large.

Options:
  -c, --config FILE  ...
  ...
  --copy / --move    This database is a copy. In order to avoid conflicts
                     between databases, Odoo needs to know if thisdatabase was
                     moved or copied. If you don't know, set is a copy.

  --force            Don't report error if destination database already
                     exists. If force and destination database exists, it will
                     be dropped before restore.  [default: False]

  --neutralize       Neutralize the database after restore. This will disable
                     scheduled actions, outgoing emails, and sets other
                     external providers in test mode. This works only in odoo
                     16.0 and above.

  --jobs INTEGER     Uses this many parallel jobs to restore. Only used to
                     restore folder format backup.

  --help             Show this message and exit.

click-odoo-makepot (stable)

Usage: click-odoo-makepot [OPTIONS]

  Export translation (.pot) files of addons installed in the database and
  present in addons_dir. Additionally, run msgmerge on the existing .po
  files to keep them up to date. Commit changes to git, if any.

Options:
  -c, --config FILE           ...
  -d, --database TEXT         ...
  ...
  --addons-dir TEXT           [default: .]
  -m, --modules TEXT          Comma separated list of addons to export
                              translation.
  --msgmerge / --no-msgmerge  Merge .pot changes into all .po files
                              [default: False]
  --msgmerge-if-new-pot / --no-msg-merge-if-new-pot
                              Merge .pot changes into all .po files, only
                              if a new .pot file has been created.
                              [default: False]
  --fuzzy-matching /  --no-fuzzy-matching
                              Use fuzzy matching when merging .pot changes
                              into .po files.
                              Only applies when --msgmerge
                              or --msgmerge-if-new-pot are passed.
                              [default: True]
  --purge-old-translations /  --no-purge-old-translations
                              Remove comment lines containing old
                              translations from .po files.
                              Only applies when --msgmerge
                              or --msgmerge-if-new-pot are passed.
                              [default: False]
  --commit / --no-commit      Git commit exported .pot files if needed.
                              [default: False]
  --help                      Show this message and exit.

click-odoo-listdb (beta)

Usage: click-odoo-listdb [OPTIONS]

  List Odoo databases.

Options:
  -c, --config FILE  Specify the Odoo configuration file. Other ways to
                    provide it are with the ODOO_RC or OPENERP_SERVER
                    environment variables, or ~/.odoorc (Odoo >= 10) or
                    ~/.openerp_serverrc.
  --log-level TEXT   Specify the logging level. Accepted values depend on the
                    Odoo version, and include debug, info, warn, error.
                    [default: warn]
  --logfile FILE     Specify the log file.
  --help             Show this message and exit.

click-odoo-uninstall (stable)

Usage: click-odoo-uninstall [OPTIONS]

Options:
  -c, --config PATH    ...
  -d, --database TEXT  ...
  ...
  -m, --modules TEXT   Comma-separated list of modules to uninstall
                       [required]
  --help               Show this message and exit.

click-odoo-update (stable)

Usage: click-odoo-update [OPTIONS]

  Update an Odoo database (odoo -u), automatically detecting addons to
  update based on a hash of their file content, compared to the hashes
  stored in the database.

  It allows updating in parallel while another Odoo instance is still
  running against the same database, by using a watcher that aborts the
  update in case a DB lock happens.

Options:
  -c, --config FILE            Specify the Odoo configuration file. Other ways
                               to provide it are with the ODOO_RC or
                               OPENERP_SERVER environment variables, or
                               ~/.odoorc (Odoo >= 10) or ~/.openerp_serverrc.
  --addons-path TEXT           Specify the addons path. If present, this
                               parameter takes precedence over the addons path
                               provided in the Odoo configuration file.
  -d, --database TEXT          Specify the database name. If present, this
                               parameter takes precedence over the database
                               provided in the Odoo configuration file.
  --log-level TEXT             Specify the logging level. Accepted values
                               depend on the Odoo version, and include debug,
                               info, warn, error.  [default: info]
  --logfile FILE               Specify the log file.
  --i18n-overwrite             Overwrite existing translations
  --update-all                 Force a complete upgrade (-u base)
  --ignore-addons TEXT         A comma-separated list of addons to ignore.
                               These will not be updated if their checksum has
                               changed. Use with care.
  --ignore-core-addons         If this option is set, Odoo CE and EE addons
                               are not updated. This is normally safe, due the
                               Odoo stable policy.
  --if-exists                  Don't report error if database doesn't exist
  --watcher-max-seconds FLOAT  Max DB lock seconds allowed before aborting the
                               update process. Default: 0 (disabled).
  --list-only                  Log the list of addons to update without
                               actually updating them.
  --only-compute-hashes        Initialise hash values of installed addons.
                               Use this when you are sure all your addons are up-to-date
                               and you don't want to run `click-odoo-update --update-all`.
  --help                       Show this message and exit.

Development

To run tests, type tox. Tests are made using pytest. To run tests matching a specific keyword for, say, Odoo 12 and python 3.6, use tox -e py36-12.0 -- -k keyword. For running tests you need a postgres server accessible for your user without a password at /var/run/postgresql/.s.PGSQL.5432.

To make sure local coding convention are respected before you commit, install pre-commit and run pre-commit install after cloning the repository.

To release, create a tagged release on GitHub. This will trigger publishing to PyPI.

Credits

Contributors:

  • Stéphane Bidoul (ACSONE)

  • Thomas Binsfeld (ACSONE)

  • Benjamin Willig (ACSONE)

  • Jairo Llopis

  • Laurent Mignon (ACSONE)

  • Lois Rilo (ForgeFlow)

  • Dmitry Voronin

  • Michael Tietz (MT Software)

Maintainer

ACSONE SA/NV

This project is maintained by ACSONE SA/NV.

Changes

1.24 (2026-09-26)

Features

  • Odoo 20 support. (#192)

  • click-odoo-dropdb, click-odoo-copydb, click-odoo-backupdb, click-odoo-restoredb are deprecated and not supported on Odoo 20. Use the odoo db commands instead. click-odoo-listdb does not work on 20 but may be rescued in the future if there is no equivalent in the odoo db commands.

1.23.1 (2025-11-11)

Bugfixes

  • click-odoo-makepot: support modules with no translatable terms in Odoo 19. (#421)

1.23 (2025-10-31)

Features

  • click-odoo-initdb: add --attachments-in-db-persistent option, to set the ir_attachment.location=db system parameter. (#175)

1.22 (2025-09-29)

Features

  • Support Odoo 19 (#165)

  • click-odoo-initdb: add --attachments-in-db option, to store attachements created during database initialization in the database instead of the default Odoo file store. (#146)

  • click-odoo-initdb: Add –unless-initialized option to initialize an already existing database. (#168)

  • click-odoo-update: add database name to log entries (#156)

1.21 (2025-08-11)

Features

  • click-odoo-update: --only-compute-hashes. (#153)

1.20 (2024-10-23)

Features

1.19 (2024-07-22)

Features

  • click-odoo-restoredb: Add --neutralize option. This works only in odoo 16.0 and above. (#143)

1.18.1 (2023-11-16)

Features

  • click-odoo-update : Do not run/update Odoo when no module needs updating. (#144)

1.18.0 (2023-10-29)

Features

  • Support Odoo 17. (#190)

1.17.0 (2023-09-03)

Features

  • New click-odoo-listdb command. (#126)

  • click-odoo-update: exclude the tests/ directory from checksum computation A modification in tests alone should not require a database upgrade. (#125)

  • click-odoo-update: set create_date and write_date on the ir_config_parameter checksums record (#128)

1.16.0 (2022-09-21)

Features

  • Add dependency on manifestoo_core to obtain Odoo core addons list (used by click-odoo-update to ignore core addons). (#114)

  • Adapt click-odoo-update for Odoo 16. (#119)

Deprecations and Removals

  • Remove support for Python < 3.6 and Odoo < 11. (#110)

1.15.1 (2021-12-04)

Bugfixes

  • Silence Odoo 15 noisy warnings about using autocommit. (#105)

1.15.0 (2021-10-06)

Features

  • Update core addons lists, with Odoo 15 support. (#104)

1.14.0 (2021-06-28)

Features

  • Adding a new option to enable using rsync and hardlinks for copying filestore: –filestore-copy-mode [default|rsync|hardlink]. (#86)

1.13.0 (2021-06-25)

Features

  • Backup and restore commands: add support for “dump” format (#79)

  • click-odoo-makepot: add –modules option to select modules to export. (#92)

  • click-odoo-update: also pass all modified modules in to upgrade state to Odoo for update; this helps upgrading when there are new dependencies, in combination with Odoo #72661. (#97)

Bugfixes

  • click-odoo-update: do not attempt to update addons that are uninstallable. (#89)

1.12.0 (2020-11-25)

Features

  • click-odoo-makepot gained new options controlling how it merges new strings in existing .po files: --no-fuzzy-matching and --purge-old-translation. (#87)

1.11.0 (2020-10-01)

Features

  • In click-odoo-copydb, reset database.* system parameters, to prevent conflicts between databases (database.uuid, database.secret, database.enterprise_code, …) (#25)

  • Add click-odoo-restoredb command. (#32)

  • Update core addons lists (for click-odoo-update –ignore-core-addons), including Odoo 14 support. (#81)

1.10.1 (2020-04-29)

Bugfixes

  • click-odoo-update: fix packaging issue (missing core addons lists). (#77)

1.10.0 (2020-04-28)

Features

  • click-odoo-initdb: add support of dot and underscore in database name. (#35)

  • click-odoo-update: added –list-only option. (#68)

  • click-odoo-update: add –ignore-addons and –ignore-core-addons options to exclude addons from checksum change detection. (#69)

Improved Documentation

  • initdb, dropdb, update: move out of beta. (#70)

Deprecations and Removals

  • Remove deprecated click-odoo-upgrade. (#71)

1.9.0 (2020-03-23)

  • click-odoo-update: acquire an advisory lock on the database so multiple instances of click-odoo-update will not start at the same time on the same database (useful when there are several Odoo instances running on the same database and all running click-odoo-update at startup)

1.8.0 (2019-10-01)

  • Support Odoo SaaS versions

  • click-odoo-update now has some support for updating while another Odoo instance is running against the same database, by using a watcher that aborts the update in case a DB lock happens (this is an advanced feature)

1.7.0 (2019-09-02)

  • makepot: always check validity of .po files

1.6.0 (2019-03-28)

  • update: support postgres 9.4

  • backupdb: work correctly when list_db is false too

  • backupdb: new –(no-)filestore option

  • dropdb: refactored to use Odoo api instead of custom code

1.5.0 (2019-02-05)

  • add click-odoo-backupdb

1.4.1 (2018-11-21)

  • fix broken click-odoo-update –i18n-overwrite

1.4.0 (2018-11-19)

  • new click-odoo-update which implements the functionality of module_auto_update natively, alleviating the need to have module_auto_update installed in the database, and is more robust (it does a regular -u after identifying modules to update)

  • upgrade: deprecated in favor of click-odoo-update

  • initdb: save installed checksums so click-odoo-update can readily use them

  • initdb: add –addons-path option

  • copydb: fix error when source filestore did not exist

1.3.1 (2018-11-05)

  • Add –unless-exists option to click-odoo-initdb

1.3.0 (2018-10-31)

  • Add click-odoo-copydb

  • Add click-odoo-dropdb

  • Add –if-exists option to click-odoo-upgrade

1.2.0 (2018-10-07)

  • Odoo 12 support

1.1.4 (2018-06-21)

  • makepot: fix issue when addons-dir is not current directory (this should also fix issues when there are symlinks)

1.1.3 (2018-06-20)

  • makepot: add –commit-message option

1.1.2 (2018-06-20)

1.1.1 (2018-06-16)

  • makepot: add –msgmerge-if-new-pot option

1.1.0 (2018-06-13, Sevilla OCA code sprint)

  • add click-odoo-makepot

  • in click-odoo-initdb, include active=True modules in hash computation (because modules with active=True are auto installed by Odoo)

1.0.4 (2018-06-02)

  • update module list after creating a database from cache, useful when we are creating a database in an environment where modules have been added since the template was created

1.0.3 (2018-05-30)

  • fix: handle situations where two initdb start at the same time ending up with an “already exists” error when creating the cached template

1.0.2 (2018-05-29)

  • fix: initdb now stores attachments in database when cache is enabled, so databases created from cache do not miss the filestore

1.0.1 (2018-05-27)

  • better documentation

  • fix: initdb now takes auto_install modules into account

1.0.0 (2018-05-27)

  • add click-odoo-initdb

1.0.0b3 (2018-05-17)

  • be more robust in rare case button_upgrade fails silently

1.0.0b2 (2018-03-28)

  • uninstall: commit and hide –rollback

  • upgrade: refactor to add composable function

1.0.0b1 (2018-03-28)

  • upgrade: save installed checksums after full upgrade

1.0.0a1 (2018-03-22)

  • first alpha

  • click-odoo-uninstall

  • click-odoo-upgrade

Metadata

Release files for click-odoo-contrib 1.24

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for click-odoo-contrib 1.24
File Size Uploaded
click_odoo_contrib-1.24.tar.gz 61.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for click-odoo-contrib 1.24
File Interpreter ABI Platform
click_odoo_contrib-1.24-py3-none-any.whl Python 3 none any Details

Total release size: 138.1 kB

Release files / click_odoo_contrib-1.24.tar.gz

Download URL click_odoo_contrib-1.24.tar.gz
Size 61.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7ce04c43cb4b75ac28cf04a9d3683936702a29c8aee93b9326b9f8b4569c5fbb
BLAKE2b-256 checksum
How to use checksums
6b20e978745978896f460ebda9e75d1837ea73ca3220736d62c527afd35fd1b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / click_odoo_contrib-1.24-py3-none-any.whl

Download URL click_odoo_contrib-1.24-py3-none-any.whl
Size 76.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b84b6670994ee686e6a8a7d8a3dc3ce5a58eed632e3dd51071019ad9d4f49344
BLAKE2b-256 checksum
How to use checksums
ff4748b70f457dbddcaf51dc367745c1619aa52c0e0bbcdd72fdfecba7826b8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.24 This release

2 release files

1.23.1

2 release files

1.23

2 release files

1.22

2 release files

1.21

2 release files

1.20

2 release files

1.19

2 release files

1.18.1

2 release files

1.18.0

2 release files

1.16.1

2 release files

1.16.0

2 release files

1.14.0

2 release files

1.13.0

2 release files

1.12.0

2 release files

1.10.1

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page