erplibre/script/database
Mathieu Benoit eca61cb2a7 [FIX] db_restore: la sonde du mot de passe maître ne validait rien
Elle interrogeait `db --list`, qui ne LIT jamais le mot de passe :
mesuré, `MASTER_PWD="ceci_est_faux" odoo-bin db --list` sort en 0. La
boucle des dix essais acceptait donc le premier mot saisi, juste ou
faux, et le refus n'arrivait qu'au `--restore` — une fois la base déjà
supprimée. C'était exactement ce que cette boucle devait éviter.

Seule l'action `drop` consulte le secret, et elle le fait AVANT de
regarder la base : `check_super` d'abord, `db_exists` ensuite. Sur un
nom tiré d'un uuid4, elle répond sans rien toucher. Mesuré : mauvais mot
de passe → code 1 et AccessDenied ; bon → code 0 ; huit bases avant,
huit après.

--- EN ---

It probed `db --list`, which never READS the master password: measured,
`MASTER_PWD="ceci_est_faux" odoo-bin db --list` exits 0. The ten-attempt
loop therefore accepted the first password typed, right or wrong, and
the refusal only came at `--restore` — once the database was already
dropped. Precisely what that loop existed to avoid.

Only the `drop` action reads the secret, and it does so BEFORE looking
at the database: `check_super` first, `db_exists` after. On a uuid4 name
it answers without touching anything. Measured: wrong password → exit 1
and AccessDenied; right → exit 0; eight databases before, eight after.

Assisted-by: Claude Opus 5
2026-08-25 03:19:18 -04:00
..
migrate [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
compare_backup.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
compare_database_application.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
db_drop_all.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
db_restore.py [FIX] db_restore: la sonde du mot de passe maître ne validait rien 2026-08-25 03:19:18 -04:00
delete_production.sh [UPD] script: move script git, manifest, database, poetry, install 2023-01-02 21:54:20 -05:00
download_remote.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
download_remote.sh [IMP] todo support odoo upgrade 2025-10-31 01:43:26 -04:00
fix_mariadb_sql_example_1.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
get_module_list_from_database.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
get_repo_from_backup.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
get_repo_from_module.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
image_db.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
lib_db_select.sh [ADD] run: choisir la base au démarrage, sans jamais bloquer 2026-08-23 17:26:41 -04:00
list_remote.py [UPD] script Format 2026-03-14 23:26:31 -04:00
mariadb_sql_example_1.sql [UPD] makefile: improve test 2022-01-24 14:09:17 -05:00
migrate_prod_to_test.sh [IMP] refactoring to support multiple version of Odoo 2025-10-31 01:32:11 -04:00
README.base.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00
README.fr.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00
README.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00
restore_mariadb_sql_example_1.sh [IMP] refactoring .venv.erplibre 2025-10-31 01:34:26 -04:00

Database

This section is for code generator database migrator.

This configuration is for development environnement.

You need to install script ./script/install/install_dev_extra_ubuntu.sh.

Restore database

Run script to restore database:

./script/database/restore_mariadb_sql_example_1.sh