{"id":28751246,"url":"https://github.com/camptocamp/marabunta","last_synced_at":"2026-01-22T11:03:23.930Z","repository":{"id":9060311,"uuid":"60687417","full_name":"camptocamp/marabunta","owner":"camptocamp","description":":ant::ant::ant: Migrating ants for Odoo :ant::ant::ant:","archived":false,"fork":false,"pushed_at":"2025-01-30T17:38:18.000Z","size":234,"stargazers_count":29,"open_issues_count":10,"forks_count":29,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-06-03T16:19:31.812Z","etag":null,"topics":["business","docker","odoo-tooling"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/camptocamp.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-08T09:48:38.000Z","updated_at":"2025-01-30T17:38:22.000Z","dependencies_parsed_at":"2024-06-19T00:25:04.073Z","dependency_job_id":"83cd287b-943c-4eb3-8307-c30c0c742482","html_url":"https://github.com/camptocamp/marabunta","commit_stats":{"total_commits":162,"total_committers":15,"mean_commits":10.8,"dds":0.5617283950617284,"last_synced_commit":"c816392ad44d11557ed5fc066e10cde707c78812"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/camptocamp/marabunta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camptocamp%2Fmarabunta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camptocamp%2Fmarabunta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camptocamp%2Fmarabunta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camptocamp%2Fmarabunta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/camptocamp","download_url":"https://codeload.github.com/camptocamp/marabunta/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camptocamp%2Fmarabunta/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260251844,"owners_count":22981136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["business","docker","odoo-tooling"],"created_at":"2025-06-16T22:32:14.598Z","updated_at":"2026-01-22T11:03:23.914Z","avatar_url":"https://github.com/camptocamp.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"🐜🐜🐜 Marabunta 🐜🐜🐜\n=======================\n\n.. image:: https://travis-ci.org/camptocamp/marabunta.svg?branch=master\n    :target: https://travis-ci.org/camptocamp/marabunta\n\n*Marabunta is a name given to the migration of the legionary ants or to the ants\nthemselves. Restless, they eat and digest everything in their way.*\n\nMarabunta is used to provide an easy way to create Updates for Odoo fast and run easily. It also allows to differentiate between different environment to provide for instance sample data.\n\n\nUsage\n=====\nAfter installing marabunta, it will be available as a console command. To run properly it requires a migration file (which defines what has to updated/executed) and odoos connection parameters (view options in the options section.\n\nAt each run marabunta verifies the versions from the migration file and and processes new ones.\nIt is very much recommended to configure it, so that marabunta is ran automatically if odoo is started.\nFor instance adding it to your docker entrypoint.\n\nFeatures\n========\n\n* backup: Marabunta allows for a backup command to be executed before the migration.\n* addon upgrades: Marabunta is able to install or upgrade odoo addons.\n* operations: Allows to execute commands before or after upgrading modules.\n* modes: Modes allow the user to execute commands only on a certain environment. e.g. creation of sample data on a dev system.\n* maintenance page: publish an html page during the migration.\n\nVersioning systems\n------------------\nCurrently Marabunta allows for two different Versioning systems:\nThe classic Major.Minor.Bugfix and the Five digits long versions for OdooMajor.OdooMinor.Major.Minor.Bugfix.\nAlthough the first marabunta version must be **setup** for the initial setup of your instance. (Find out more about the rationale here \u003chttps://github.com/camptocamp/marabunta/commit/9b96acaff8e7eecbf82ff592b7bb927b4cd82f02\u003e)\n\n\nOptions\n=======\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | option                  | shortcut | envvar                            | purpose                                                           |\n    +=========================+==========+===================================+===================================================================+\n    | --migration-file        | -f       | MARABUNTA_MIGRATION_FILE          | Definition file for the migration.                                |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --database              | -d       | MARABUNTA_DATABASE                | Database we want to run the migration on.                         |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --db-user               | -u       | MARABUNTA_DB_USER, PGUSER         | Database user.                                                    |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --db-password           | -w       | MARABUNTA_DB_PASSWORD, PGPASSWORD | Database password.                                                |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --db-port               | -p       | MARABUNTA_DB_PORT, PGPORT         | Database port (defaults to 5432).                                 |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --db-host               | -H       | MARABUNTA_DB_HOST, PGHOST         | Database port (defaults to None).                                 |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --mode                  |          | MARABUNTA_MODE                    | Mode marabunta runs in for different envs.                        |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --allow-serie           |          | MARABUNTA_ALLOW_SERIE             | Allow multiple versions to be upgraded at once.                   |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --force-version         |          | MARABUNTA_FORCE_VERSION           | Force the upgrade to a version no matter what.                    |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --override-translations |          | MARABUNTA_OVERRIDE_TRANSLATIONS   | Force translations override                                       |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --web-host              |          | MARABUNTA_WEB_HOST                | Interface to bind for the maintenance page. (defaults to 0.0.0.0).|\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --web-port              |          | MARABUNTA_WEB_PORT                | Port for the maintenance page. (defaults to 8069).                |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n    | --web-custom-html       |          | MARABUNTA_WEB_CUSTOM_HTML         | Path to custom maintenance html page to serve.                    |\n    +-------------------------+----------+-----------------------------------+-------------------------------------------------------------------+\n\nYAML layout \u0026 Example\n=====================\nHere is an Example migration file::\n\n    migration:\n      options:\n        # This includes general options which are used everytime marabunta is called.\n        # --workers=0 --stop-after-init are automatically added\n        install_command: odoo #Command which starts odoo\n        install_args: --log-level=debug # additional Arguments\n        backup: # Defines how the backup should be done before the migration.\n          command: echo \"backup command on ${DB_NAME}\"\n          stop_on_failure: true\n          ignore_if: test \"${RUNNING_ENV}\" != \"prod\"\n      versions:\n        - version: setup # Setup is always the initia. version\u003c\n          operations:\n            pre:  # executed before 'addons'\n              - echo 'pre-operation'\n            post:  # executed after 'addons'\n              - anthem songs::install\n          addons:\n            upgrade:  # executed as odoo --stop-after-init -i/-u ...\n              - base\n              - document\n          modes:\n            full:\n              operations:\n                pre:\n                  - echo 'pre-operation executed only when the mode is full'\n                post:\n                  - anthem songs::load_production_data\n            sample:\n              operations:\n                post:\n                  - anthem songs::load_sample_data\n              addons:\n                upgrade:\n                  - sample_addon\n\n        - version: 0.0.2\n          backup: false\n          # nothing to do this can be used to keep marabunta and gittag in sync\n\n        - version: 0.0.3\n          operations:\n            pre: # we also can execute os commands\n              - echo 'foobar'\n              - ls\n              - bin/script_test.sh\n            post:\n              - echo 'post-op'\n\n        - version: 0.0.4\n          backup: false\n          override_translations: true\n          addons:\n            upgrade:\n              - popeye\n\n\nRun the tests\n-------------\n\nTo run ``marabunta`` tests, it is a good idea to do an *editable*\ninstall of it in a virtualenv, and then intall and run ``pytest`` as\nfollows::\n\n  $ git clone https://github.com/camptocamp/marabunta.git\n  Cloning into 'marabunta'...\n  $ cd marabunta\n  $ virtualenv -p YOUR_PYTHON env\n  $ source env/bin/activate\n  $ pip install '.[test]'\n  $ py.test tests\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamptocamp%2Fmarabunta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcamptocamp%2Fmarabunta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamptocamp%2Fmarabunta/lists"}