From ecd3f3739dc607538a2a2f581e34c4f468b3d4b9 Mon Sep 17 00:00:00 2001 From: florimondmanca Date: Wed, 4 Dec 2024 11:34:55 +0100 Subject: [PATCH] Ajoute des commandes utilitaires createdb, usedb, dropdb --- Makefile | 10 ++++++++++ docs/tools/db.md | 24 ++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/Makefile b/Makefile index 4f9be0842..cc0d21464 100644 --- a/Makefile +++ b/Makefile @@ -76,6 +76,16 @@ dbmigration: ## Generate new db migration dbmigrate: ## Run db migration ${BIN_CONSOLE} doctrine:migrations:migrate -n --all-or-nothing ${ARGS} +createdb: ## Create branch db from dialog db + docker compose exec database createdb -U dialog -T dialog ${NAME} + +usedb: ## Update .env.local files with branch DATABASE_URL + sed -i -r 's/^DATABASE_URL=.+/DATABASE_URL="postgresql:\/\/dialog:dialog@database:5432\/dialog_$(NAME)"/' .env.local + sed -i -r 's/^DATABASE_URL=.+/DATABASE_URL="postgresql:\/\/dialog:dialog@database:5432\/dialog_$(NAME)"/' .env.test.local + +dropdb: ## Remove branch db + docker compose exec database dropdb ${NAME} + bdtopo_migration: ## Generate new db migration for bdtopo ${BIN_CONSOLE} doctrine:migrations:generate --configuration ./config/packages/bdtopo/doctrine_migrations.yaml diff --git a/docs/tools/db.md b/docs/tools/db.md index 828662596..ee103d042 100644 --- a/docs/tools/db.md +++ b/docs/tools/db.md @@ -41,6 +41,30 @@ Une configuration est nécéssaire à la première connection pour relier pgAdmi Et c'est tout ! Vous aurez maintenant accès à l'interface graphique pour gérer la base de données. +## Base de données de branche + +Pour développer sur une branche contenant de nouvelles migrations, il peut être utile d'utiliser une DB dédiée afin de ne pas affecter votre DB de développement principale. + +Pour cela utilisez `make createdb` : + +```bash +make createdb NAME=ma_feature +``` + +Une base de données `dialog_ma_feature` sera créée à partir de la base `dialog`. + +Pour l'utiliser, il faut mettre à jour `DATABASE_URL` dans les fichiers `.env.local` et `.env.test.local`. Vous pouvez le faire en une commande avec `make usedb` : + +```bash +make usedb NAME=ma_feature +``` + +Quand vous n'avez plus besoin de la DB, utilisez `make dropdb` : + +```bash +make dropdb NAME=ma_feature +``` + ## Utiliser une DB Scalingo en local Vous pouvez utiliser en local une base de données hébergée sur Scalingo (staging, PR...) à l'aide d'un utilitaire.