Skip to content
Snippets Groups Projects
Commit 9abbbb96 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Générateur des scripts de création de la BDD : améliorations

parent 2c599fed
No related branches found
No related tags found
No related merge requests found
......@@ -11,10 +11,12 @@ Les scripts générés dans le répertoire temporaire `/tmp/sygal-doc/database`
- `02-inserts/oracle-data-insert-from-SYGAL.*-into-SYGAL.sql`
- `03-oracle-generate-ref-constraints-SYGAL.sql`
Les autres scripts gérés, eux, à la main sont :
Les autres scripts sont gérés à la main :
- [`00-crea-users.sql`](../database/00-crea-users.sql)
- [`01-bootstrap.sql`](../database/01-bootstrap.sql)
- [`04-crea-comue.sql`](../database/04-crea-comue.sql)
- [`05-init.sql`](../database/05-init.sql)
- [`06-test.sql`](../database/06-test.sql)
Usage :
```bash
......
#!/usr/bin/env bash
#
# Script de génération d'une partie des scripts SQL permettant de créer de zéro la base de données de SyGAL.
#
# Arguments :
# $1 : Nom du schéma de base de données. Ex: "SYGAL". Obligatoire.
#
# NB: Attention, cet argument n'a pas la vocation de "sélectionner" le schéma de base de données à utiliser,
# il est simplement exploité pour les noms de fichiers SQL générés.
# Le schéma de base de données utilisé est celui spécifié dans la config Doctrine de l'appli
# (cf. fichier `config/autoload/*.secret.local.php` de l'appli).
#
# Exemple d'usage :
# bash gen-db-scripts.sh "SYGAL"
#
[[ -z "$1" ]] && echo "Le nom du schéma de base de données doit être spécifié, ex: SYGAL." && exit 1
SCHEMA=$1
# fonction mettant en commentaire certains options de création de séquence dans le(s) fichier(s) spécifié(s)
commentSeqOptionsInFile() {
for f in $1; do
......@@ -9,8 +28,8 @@ commentSeqOptionsInFile() {
# fonction remplaçant 'SYGAL.' par '/*SYGAL.*/' et '"SYGAL".' par '/*"SYGAL".*/' dans le(s) fichier(s) spécifié(s)
commentPrefixInFile() {
for f in $1; do
sed -i 's/\(SYGAL\.\)/\/*\1*\//ig' ${f}
sed -i 's/\("SYGAL"\.\)/\/*\1*\//ig' ${f}
sed -i "s/\(${SCHEMA}\.\)/\/*\1*\//ig" ${f}
sed -i "s/\(\"${SCHEMA}\"\.\)/\/*\1*\//ig" ${f}
done
}
# fonction remplaçant par exemple "/*HISTO::*/1234" par "$2/*SUBSTIT*/" dans le(s) fichier(s) spécifié(s) en $1
......@@ -20,10 +39,10 @@ replaceHistoIdInFile() {
done
}
FROM_FILE_PATH_CLEAR="/tmp/oracle-clear-schema-SYGAL.sql"
FROM_FILE_PATH_SCHEMA="/tmp/oracle-generate-schema-SYGAL-from-SYGAL.sql"
FROM_FILE_PATH_CLEAR="/tmp/oracle-clear-schema-${SCHEMA}.sql"
FROM_FILE_PATH_SCHEMA="/tmp/oracle-generate-schema-${SCHEMA}-from-${SCHEMA}.sql"
FROM_FILE_PATH_INSERTS="/tmp/inserts"
FROM_FILE_PATH_REF="/tmp/oracle-generate-ref-constraints-SYGAL-from-SYGAL.sql"
FROM_FILE_PATH_REF="/tmp/oracle-generate-ref-constraints-${SCHEMA}-from-${SCHEMA}.sql"
TABLES="CATEGORIE_PRIVILEGE,DOMAINE_SCIENTIFIQUE,IMPORT_OBSERV,INFORMATION,NATURE_FICHIER,PRIVILEGE,PROFIL,PROFIL_PRIVILEGE,TYPE_STRUCTURE,TYPE_VALIDATION,VERSION_FICHIER,WF_ETAPE"
HISTO_ID_SUBSTIT=1 # valeur forcée pour les colonnes d'historique
......
#!/usr/bin/env bash
#
# Script de génération d'une partie des scripts SQL permettant de créer de zéro la base de données de SyGAL.
#
# Arguments :
# Aucun.
#
# Exemple d'usage :
# bash generate-database-scripts.sh
#
echo "
####################################################################################################
#
......@@ -8,6 +18,7 @@ echo "
####################################################################################################"
THIS_DIR=$(cd `dirname $0` && pwd)
SCHEMA="SYGAL"
# répertoire de destination des résultats
OUTPUT_DIR=/tmp/sygal-doc/database
......@@ -16,18 +27,18 @@ mkdir -p ${OUTPUT_DIR}
# copie et lancement du script dans le container docker
docker cp ${THIS_DIR}/docker/gen-db-scripts.sh sygal-container:/app && \
docker exec -it -w /app sygal-container bash gen-db-scripts.sh && \
docker exec -it -w /app sygal-container bash gen-db-scripts.sh ${SCHEMA} && \
docker exec -it -w /app sygal-container rm gen-db-scripts.sh
FROM_FILE_PATH_CLEAR="/tmp/oracle-clear-schema-SYGAL.sql"
FROM_FILE_PATH_SCHEMA="/tmp/oracle-generate-schema-SYGAL-from-SYGAL.sql"
FROM_FILE_PATH_CLEAR="/tmp/oracle-clear-schema-${SCHEMA}.sql"
FROM_FILE_PATH_SCHEMA="/tmp/oracle-generate-schema-${SCHEMA}-from-${SCHEMA}.sql"
FROM_FILE_PATH_INSERTS="/tmp/inserts"
FROM_FILE_PATH_REF="/tmp/oracle-generate-ref-constraints-SYGAL-from-SYGAL.sql"
FROM_FILE_PATH_REF="/tmp/oracle-generate-ref-constraints-${SCHEMA}-from-${SCHEMA}.sql"
TO_FILE_PATH_CLEAR="${OUTPUT_DIR}/00-oracle-clear-schema-SYGAL.sql"
TO_FILE_PATH_SCHEMA="${OUTPUT_DIR}/00-oracle-generate-schema-SYGAL.sql"
TO_FILE_PATH_CLEAR="${OUTPUT_DIR}/00-oracle-clear-schema-${SCHEMA}.sql"
TO_FILE_PATH_SCHEMA="${OUTPUT_DIR}/00-oracle-generate-schema-${SCHEMA}.sql"
TO_FILE_PATH_INSERTS="${OUTPUT_DIR}/02-inserts"
TO_FILE_PATH_REF="${OUTPUT_DIR}/03-oracle-generate-ref-constraints-SYGAL.sql"
TO_FILE_PATH_REF="${OUTPUT_DIR}/03-oracle-generate-ref-constraints-${SCHEMA}.sql"
# récupération des scripts SQL générés
docker cp sygal-container:${FROM_FILE_PATH_CLEAR} ${TO_FILE_PATH_CLEAR} && \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment