Commit b1458b38 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Doc : mise à jour de la doc et scripts de création de bdd neuve.

parent 699d8161
Loading
Loading
Loading
Loading
+3 −12
Changes for bin/database/README.md: 3 added lines, 12 removed lines.
Original line number Diff line number Diff line
@@ -12,18 +12,9 @@ Cette génération se fait *à partir d'une bdd PostgreSQL modèle existante* à

Le script shell [`./build_db_install_files.sh`](build_db_install_files.sh) génère dans un répertoire de votre choix :

  - un répertoire `sql/` contenant un ensemble de scripts SQL ordonnés :
    - `01_create_db_user.sql`
    - `02_create_schema.sql`
    - `03_insert_bootstrap_data.sql`
    - `04_insert_data.sql`
    - `05_prepare_data.sql`
    - `06_prepare_sequences.sql`
    - `07_create_constraints.sql`
    - `08_create_comue.sql`
    - `09_create_ced.sql`
    - `10_init.sql`
    - `11_create_fixture.sql`
  - un répertoire `sql/` contenant des scripts SQL ordonnés dans les sous répertoires suivants :
    - `01_admin/`
    - `02_other/`
      
  - un script bash et un fichier de config pour "préparer" les scripts SQL ayant l'extension `.sql.dist` :    
    - `build_db_files.conf.dist`
+18 −16
Changes for bin/database/build_db_install_files.sh: 18 added lines, 16 removed lines.
Original line number Diff line number Diff line
@@ -126,7 +126,8 @@ NAME_CREATE_FIXTURE='create_fixture'
NAME_CREATE_CONSTRAINTS='create_constraints'

mkdir -p $OUTPUT_DIR/sql && \
mkdir $OUTPUT_DIR/sql/admin
mkdir $OUTPUT_DIR/sql/01_admin
mkdir $OUTPUT_DIR/sql/02_other

i=0

@@ -134,7 +135,7 @@ i=0
## clearing
##
#i=$((i+1))
#OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql" $i $NAME_CLEAR_DB)
#OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql" $i $NAME_CLEAR_DB)
#SRC_SCRIPT=$THIS_DIR/src/sql/$i_$NAME_CLEAR_DB.gen.sql
#psql --tuples-only --output $OUTPUT_FILE <$SRC_SCRIPT
#echo "> $OUTPUT_FILE"
@@ -143,7 +144,7 @@ i=0
# db and user
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/admin/$(printf "%02d_%s.sql" $i $NAME_CREATE_DB_USER)
OUTPUT_FILE=$OUTPUT_DIR/sql/01_admin/$(printf "%02d_%s.sql" $i $NAME_CREATE_DB_USER)
SRC_SCRIPT=$THIS_DIR/src/sql/$NAME_CREATE_DB_USER.template.sql
cp $SRC_SCRIPT $OUTPUT_FILE
injectConfParamsInScript $OUTPUT_FILE
@@ -153,7 +154,7 @@ echo "> $OUTPUT_FILE"
# schema objects
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql" $i $NAME_CREATE_SCHEMA)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql" $i $NAME_CREATE_SCHEMA)
pg_dump --section=pre-data --schema-only --exclude-table 'MV_INDICATEUR*' --exclude-table '*_SAV' --exclude-table 'SAV_*' --exclude-table 'Z_*' >$OUTPUT_FILE
replacePgDatabaseAndUserInScript $OUTPUT_FILE
#prepareScript $OUTPUT_FILE
@@ -163,7 +164,7 @@ echo "> $OUTPUT_FILE"
# bootstrap data
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql" $i $NAME_INSERT_BOOTSTRAP_DATA)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql" $i $NAME_INSERT_BOOTSTRAP_DATA)
SRC_SCRIPT=$THIS_DIR/src/sql/$NAME_INSERT_BOOTSTRAP_DATA.template.sql
cp $SRC_SCRIPT $OUTPUT_FILE
echo "> $OUTPUT_FILE"
@@ -172,7 +173,7 @@ echo "> $OUTPUT_FILE"
# data
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql" $i $NAME_INSERT_DATA)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql" $i $NAME_INSERT_DATA)
pg_dump --data-only --column-inserts \
--table="admission_etat" \
--table="admission_type_validation" \
@@ -214,17 +215,18 @@ echo "> $OUTPUT_FILE"
# other data
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql" $i $NAME_INSERT_DATA)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql" $i $NAME_INSERT_DATA)
# role
printf "copy role from stdin with header;\n" > $OUTPUT_FILE && \
psql -c "copy (select * from role where structure_id is null) to STDOUT with HEADER;" >> $OUTPUT_FILE && \
printf "copy role from stdin;\n" > $OUTPUT_FILE && \
psql -c "copy (select * from role where structure_id is null) to STDOUT;" >> $OUTPUT_FILE && \
printf "\.\n" >> $OUTPUT_FILE
echo "> $OUTPUT_FILE"

#
# prepare data
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql" $i $NAME_PREPARE_DATA)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql" $i $NAME_PREPARE_DATA)
SRC_SCRIPT=$THIS_DIR/src/sql/$NAME_PREPARE_DATA.sql
cp $SRC_SCRIPT $OUTPUT_FILE
echo "> $OUTPUT_FILE"
@@ -233,7 +235,7 @@ echo "> $OUTPUT_FILE"
# prepare sequences
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql" $i $NAME_PREPARE_SEQUENCES)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql" $i $NAME_PREPARE_SEQUENCES)
SRC_SCRIPT=$THIS_DIR/src/sql/$NAME_PREPARE_SEQUENCES.sql
cp $SRC_SCRIPT $OUTPUT_FILE
echo "> $OUTPUT_FILE"
@@ -242,7 +244,7 @@ echo "> $OUTPUT_FILE"
# constraints
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql" $i $NAME_CREATE_CONSTRAINTS)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql" $i $NAME_CREATE_CONSTRAINTS)
pg_dump --section=post-data --schema-only --exclude-table="mv_indicateur_*" --exclude-table '*_SAV' --exclude-table 'SAV_*' --exclude-table 'Z_*' >$OUTPUT_FILE
replacePgDatabaseAndUserInScript $OUTPUT_FILE
echo "> $OUTPUT_FILE"
@@ -251,7 +253,7 @@ echo "> $OUTPUT_FILE"
# COMUE
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql.dist" $i $NAME_CREATE_COMUE)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql.dist" $i $NAME_CREATE_COMUE)
SRC_SCRIPT=$THIS_DIR/src/sql/$NAME_CREATE_COMUE.template.sql
cp $SRC_SCRIPT $OUTPUT_FILE
echo "> $OUTPUT_FILE"
@@ -260,7 +262,7 @@ echo "> $OUTPUT_FILE"
# CED
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql.dist" $i $NAME_CREATE_CED)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql.dist" $i $NAME_CREATE_CED)
SRC_SCRIPT=$THIS_DIR/src/sql/$NAME_CREATE_CED.template.sql
cp $SRC_SCRIPT $OUTPUT_FILE
echo "> $OUTPUT_FILE"
@@ -269,7 +271,7 @@ echo "> $OUTPUT_FILE"
# init
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql.dist" $i $NAME_INIT)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql.dist" $i $NAME_INIT)
SRC_SCRIPT=$THIS_DIR/src/sql/$NAME_INIT.template.sql
cp $SRC_SCRIPT $OUTPUT_FILE
echo "> $OUTPUT_FILE"
@@ -278,7 +280,7 @@ echo "> $OUTPUT_FILE"
# fixtures
#
i=$((i+1))
OUTPUT_FILE=$OUTPUT_DIR/sql/$(printf "%02d_%s.sql.dist" $i $NAME_CREATE_FIXTURE)
OUTPUT_FILE=$OUTPUT_DIR/sql/02_other/$(printf "%02d_%s.sql.dist" $i $NAME_CREATE_FIXTURE)
SRC_SCRIPT=$THIS_DIR/src/sql/$NAME_CREATE_FIXTURE.template.sql
cp $SRC_SCRIPT $OUTPUT_FILE
echo "> $OUTPUT_FILE"
+8 −25
Changes for bin/database/src/README.template.md: 8 added lines, 25 removed lines.
Original line number Diff line number Diff line
@@ -7,18 +7,9 @@ Les fichiers fournis dans ce répertoire permettent de créer une base de donné
    - [`build_db_files.conf.dist`](build_db_files.conf.dist) (à adapter et à renommer en `.conf`)
    - [`build_db_files.sh`](build_db_files.sh)
    
- d'autre part, les scripts SQL situés dans le répertoire [`sql/`](sql) :
    - [`admin/01_create_db_user.sql`](sql/admin/01_create_db_user.sql)
    - [`02_create_schema.sql`](sql/02_create_schema.sql)
    - [`03_insert_bootstrap_data.sql`](sql/03_insert_bootstrap_data.sql)
    - [`04_insert_data.sql`](sql/04_insert_data.sql)
    - [`05_prepare_data.sql`](sql/05_prepare_data.sql)
    - [`06_prepare_sequences.sql`](sql/06_prepare_sequences.sql)
    - [`07_create_constraints.sql`](sql/07_create_constraints.sql)
    - [`08_create_comue.sql.dist`](sql/08_create_comue.sql.dist)
    - [`09_create_ced.sql.dist`](sql/09_create_ced.sql.dist)
    - [`10_init.sql.dist`](sql/10_init.sql.dist)
    - [`11_create_fixture.sql.dist`](sql/11_create_fixture.sql.dist)
- d'autre part, des fichiers `.sql` ou `.sql.dist` situés dans les sous-répertoires du répertoire [`sql/`](sql) suivants :
    - [`01_admin`](sql/01_admin/)
    - [`02_other`](sql/02_other/)


## Pré-requis
@@ -38,11 +29,7 @@ mkdir -p /tmp/sygal && cp -r . /tmp/sygal/database && cd /tmp/sygal/database

## Préparation de certains scripts SQL

Les scripts SQL à "préparer" portent l'extension `.sql.dist` :
  - [`08_create_comue.sql.dist`](sql/08_create_comue.sql.dist)
  - [`09_create_ced.sql.dist`](sql/09_create_ced.sql.dist)
  - [`10_init.sql.dist`](sql/10_init.sql.dist)
  - [`11_create_fixture.sql.dist`](sql/11_create_fixture.sql.dist)
Les scripts SQL à "préparer" de trouvent dans le sous-répertoire `02_other` portent l'extension `.sql.dist`.

Pour les préparer, vous devez dans l'ordre :

@@ -61,12 +48,8 @@ Pour les préparer, vous devez dans l'ordre :
    ./build_db_files.sh -c ./build_db_files.conf -i ./sql/
    ```

Une fois le script bash exécuté, vous devriez vous retrouver avec 3 scripts SQL supplémentaires dans le répertoire 
[`sql/`](sql) :
  - [`08_create_comue.sql`](sql/08_create_comue.sql)
  - [`09_create_ced.sql`](sql/09_create_ced.sql)
  - [`10_init.sql`](sql/10_init.sql)
  - [`11_create_fixture.sql`](sql/11_create_fixture.sql)
Une fois le script bash exécuté, vous devriez vous retrouver avec des scripts SQL supplémentaires dans le répertoire 
[`sql/`](sql).

À présent, tout est prêt pour lancer la création de la base de données.

@@ -99,7 +82,7 @@ psql \
  -v dbname=${SYGAL_DB} \
  -v dbuser=${SYGAL_USER} \
  -v dbpassword="'${SYGAL_PASSWORD}'" \
  -f sql/admin/01_create_db_user.sql
  -f sql/01_admin/01_create_db_user.sql
```


@@ -111,7 +94,7 @@ créés à l'étape précédente (et non plus avec le super-utilisateur).*
- Lancez les lignes de commande suivantes :

```bash
for f in sql/*.sql; do \
for f in sql/02_other/*.sql; do \
  PGHOST=localhost \
  PGPORT=5432 \
  PGDATABASE=${SYGAL_DB} \
+14 −26
Changes for doc/database/README.md: 14 added lines, 26 removed lines.
Original line number Diff line number Diff line
Création d'une base de données pour ESUP-SyGAL
==============================================
Création d'une base de données PostgreSQL pour ESUP-SyGAL
=========================================================

Les fichiers fournis permettant de créer une base de données neuve pour ESUP-SyGAL sont :
Les fichiers fournis dans ce répertoire permettent de créer une base de données neuve pour ESUP-SyGAL :

- d'une part, le fichier de config et le script bash de construction :
    - [`build_db_files.conf.dist`](build_db_files.conf.dist) (à adapter et à renommer en `.conf`)
    - [`build_db_files.sh`](build_db_files.sh)
    
- d'autre part, les scripts SQL situés dans le répertoire [`sql/`](sql) :
    - [`admin/01_create_db_user.sql`](sql/admin/01_create_db_user.sql)
    - [`02_create_schema.sql`](sql/02_create_schema.sql)
    - [`03_insert_bootstrap_data.sql`](sql/03_insert_bootstrap_data.sql)
    - [`04_insert_data.sql`](sql/04_insert_data.sql)
    - [`05_prepare_data.sql`](sql/05_prepare_data.sql)
    - [`06_prepare_sequences.sql`](sql/06_prepare_sequences.sql)
    - [`07_create_constraints.sql`](sql/07_create_constraints.sql)
    - [`08_create_comue.sql.dist`](sql/08_create_comue.sql.dist)
    - [`09_create_ced.sql.dist`](sql/09_create_ced.sql.dist)
    - [`10_init.sql.dist`](sql/10_init.sql.dist)
    - [`11_create_fixture.sql.dist`](sql/11_create_fixture.sql.dist)
- d'autre part, des fichiers `.sql` ou `.sql.dist` situés dans les sous-répertoires du répertoire [`sql/`](sql) suivants :
    - [`01_admin`](sql/01_admin/)
    - [`02_other`](sql/02_other/)


## Pré-requis

Vous devez disposer d'un serveur de base de données PostgreSQL en **version 15**.


## Case départ
@@ -33,11 +29,7 @@ mkdir -p /tmp/sygal && cp -r . /tmp/sygal/database && cd /tmp/sygal/database

## Préparation de certains scripts SQL

Les scripts SQL à "préparer" portent l'extension `.sql.dist` :
  - [`08_create_comue.sql.dist`](sql/08_create_comue.sql.dist)
  - [`09_create_ced.sql.dist`](sql/09_create_ced.sql.dist)
  - [`10_init.sql.dist`](sql/10_init.sql.dist)
  - [`11_create_fixture.sql.dist`](sql/11_create_fixture.sql.dist)
Les scripts SQL à "préparer" de trouvent dans le sous-répertoire `02_other` portent l'extension `.sql.dist`.

Pour les préparer, vous devez dans l'ordre :

@@ -56,12 +48,8 @@ Pour les préparer, vous devez dans l'ordre :
    ./build_db_files.sh -c ./build_db_files.conf -i ./sql/
    ```

Une fois le script bash exécuté, vous devriez vous retrouver avec 3 scripts SQL supplémentaires dans le répertoire 
[`sql/`](sql) :
  - [`08_create_comue.sql`](sql/08_create_comue.sql)
  - [`09_create_ced.sql`](sql/09_create_ced.sql)
  - [`10_init.sql`](sql/10_init.sql)
  - [`11_create_fixture.sql`](sql/11_create_fixture.sql)
Une fois le script bash exécuté, vous devriez vous retrouver avec des scripts SQL supplémentaires dans le répertoire 
[`sql/`](sql).

À présent, tout est prêt pour lancer la création de la base de données.

Loading