Skip to content

Commit

Permalink
Ajoute des commandes utilitaires createdb, usedb, dropdb
Browse files Browse the repository at this point in the history
  • Loading branch information
florimondmanca committed Dec 4, 2024
1 parent b3f4cd3 commit ecd3f37
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
24 changes: 24 additions & 0 deletions docs/tools/db.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit ecd3f37

Please sign in to comment.