Commit 84a802e2 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Mise à jour des scripts SQL et de la doc

parent 21bd4e1b
Loading
Loading
Loading
Loading
+32 −12
Original line number Diff line number Diff line
Créer/lancer une bdd à partir d'un dump SQL
===========================================

- Mettez le fichier de dump SQL dans le répertoire `./tmp/sql` et assurez-vous qu'il a l'extension `.sql`.
- Préliminaires :

- Trouvez dans le dump le nom du user attendu :
```bash
TARGET_DIR=/tmp/sygal-db
mkdir ${TARGET_DIR}
mkdir ${TARGET_DIR}/sql
mkdir ${TARGET_DIR}/sql/admin
```

- Exemple de dump d'une base de prod nommée "sygal" en vue de créer une base de développement :

```bash
grep -Ens "OWNER TO" ./tmp/sql/* | head -n 1
PGPASSWORD='xxxxxx' pg_dump -h localhost -p 5432 -d "sygal" -U "sygal" > ${TARGET_DIR}/sql/sygal_prod_dump.sql
```

- Créez le sous-répertoire `./tmp/sql/admin`  et copiez-y le script de création de la bdd :
NB : le dump doit avoir l'extension `.sql`.

- Cherchez dans le dump si des instructions "OWNER TO" font référence à un user particulier :

```bash
mkdir -p ./tmp/sql/admin
cp ./docker/sql/admin/01_create_db_user.sql ./tmp/sql/admin/
grep -Ens "OWNER TO" ${TARGET_DIR}/sql/* | head -n 1
```

- Lancer le container en adaptant `--env SYGAL_USER=ad_sygal` au user trouvé précédemment :
Si un user est mentionné, c'est lui qui devra être spécifié au moment du `docker run` pour qu'il soit
créé dans la base de données (cf. plus bas).

L'autre solution est de modifier le user DANS le dump s'il ne vous convient pas.

- Copiez le script de création de la bdd et du user :

```bash
cp ./docker/sql/admin/01_create_db_user.sql ${TARGET_DIR}/sql/admin/
```

- Lancer le container en adaptant `--env SYGAL_USER=sygal` au user trouvé précédemment :

```bash
docker run \
@@ -24,15 +43,16 @@ docker run \
--env POSTGRES_USER=postgres \
--env POSTGRES_PASSWORD=admin \
--env SYGAL_DB=sygal \
--env SYGAL_USER=ad_sygal \
--env SYGAL_USER=sygal \
--env SYGAL_PASSWORD=azerty \
--publish 5432:5432 \
--volume $PWD/tmp/sql/:/sql \
--volume $PWD/tmp/db:/var/lib/postgresql/data \
--volume ${TARGET_DIR}/sql/:/sql \
--volume ${TARGET_DIR}/db:/var/lib/postgresql/data \
sygal-db-image
```

Au 1er lancement, si aucune bdd n'est déjà persistée dans le répertoire `./tmp/db`, les scripts SQL sont exécutés : 
la bdd est créée.
Au 1er lancement, si aucune bdd n'est déjà persistée dans le répertoire `${TARGET_DIR}/db`, les scripts SQL sont 
exécutés : la bdd est créée.

Aux lancements suivants, la bdd existe dans le répertoire donc les scripts ne sont pas exécutés.
Pour que la bdd soit re-créée, il faut supprimer le répertoire `./tmp/db`.
+1 −1
Original line number Diff line number Diff line
SyGAL Database Image
====================

Ce projet est une image Docker rassemblant le nécessaire pour créer (le cas échéant) et de lancer une base de données 
Ce projet est une image Docker rassemblant le nécessaire pour créer (le cas échéant) et lancer une base de données 
pour l'application ESUP-SyGAL.


+1 −1
Original line number Diff line number Diff line
@@ -17,4 +17,4 @@ services:
      - "5432:5432"
    volumes:
      #- ./docker/db/sql/:/sql               # répertoire des scripts de création de la bdd
      - ./data/db:/var/lib/postgresql/data  # répertoire de où la bdd est persistée
      - ./data/db:/var/lib/postgresql/data  # répertoire où la bdd est persistée
+4284 −2328

File changed.

Preview size limit exceeded, changes collapsed.

+1026 −50

File changed.

Preview size limit exceeded, changes collapsed.

Loading