Loading bin/README.md +5 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,11 @@ Les autres scripts gérés, eux, à la main sont : Usage : ```bash # génération des scripts ./generate-database-scripts.sh # mise à jour du dépôt cp -r /tmp/sygal-doc/database/* database/ ``` Mise à jour dans ` database` des scripts générés No newline at end of file bin/docker/gen-db-scripts.sh 0 → 100755 +56 −0 Original line number Diff line number Diff line #!/usr/bin/env bash # 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 sed -i 's/\(START WITH [0-9]\+\)/\/*\1*\//ig; s/\(CACHE [0-9]\+\)/\/*\1*\//ig' ${f} done } # 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} done } # fonction remplaçant par exemple "/*HISTO::*/1234" par "$2/*SUBSTIT*/" dans le(s) fichier(s) spécifié(s) en $1 replaceHistoIdInFile() { for f in $1; do sed -i "s/\/\*HISTO::\*\/[0-9]\+/$2\/\*SUBSTIT\*\//ig" ${f} 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_INSERTS="/tmp/inserts" FROM_FILE_PATH_REF="/tmp/oracle-generate-ref-constraints-SYGAL-from-SYGAL.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 rm -rf ${FROM_FILE_PATH_INSERTS} && mkdir -p ${FROM_FILE_PATH_INSERTS} php public/index.php generate-script-for-schema-clearing \ --connection=doctrine.connection.orm_default && \ \ php public/index.php generate-script-for-schema-creation \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default \ --ref-constraints-included=0 && \ \ php public/index.php generate-scripts-for-data-inserts \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default \ --tables=${TABLES} \ --output-dir=${FROM_FILE_PATH_INSERTS} && \ \ php public/index.php generate-script-for-ref-constraints-creation \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default && \ \ commentPrefixInFile ${FROM_FILE_PATH_CLEAR} && \ commentPrefixInFile ${FROM_FILE_PATH_SCHEMA} && \ commentSeqOptionsInFile ${FROM_FILE_PATH_SCHEMA} && \ commentPrefixInFile "${FROM_FILE_PATH_INSERTS}/*" && \ replaceHistoIdInFile "${FROM_FILE_PATH_INSERTS}/*" ${HISTO_ID_SUBSTIT} && \ commentPrefixInFile ${FROM_FILE_PATH_REF} bin/generate-database-scripts.sh +19 −82 Original line number Diff line number Diff line Loading @@ -14,88 +14,25 @@ OUTPUT_DIR=/tmp/sygal-doc/database [[ -d ${OUTPUT_DIR} ]] && echo "Le répertoire de destination existe déjà : ${OUTPUT_DIR}" && exit 1 mkdir -p ${OUTPUT_DIR} # fonction remplaçant 'SYGAL.' par '/*SYGAL.*/' et '"SYGAL".' par '/*"SYGAL".*/' dans le fichier spécifié commentPrefixInFile() { sed -i 's/\(SYGAL\.\)/\/*\1*\//ig' $1 sed -i 's/\("SYGAL"\.\)/\/*\1*\//ig' $1 } # fonction remplaçant par exemple "/*HISTO::*/1234" par "$2/*SUBSTIT*/" dans le fichier spécifié en $1 replaceHistoIdInFile() { sed -i "s/\/\*HISTO::\*\/[0-9]\+/$2\/\*SUBSTIT\*\//ig" $1 } echo ########################################################################## # Script de vidage de la bdd existante ##########################################################################" FROM_FILE_PATH="/tmp/oracle-clear-schema-SYGAL.sql" TO_FILE_PATH="${OUTPUT_DIR}/00-oracle-clear-schema-SYGAL.sql" docker exec \ -it \ -w /app \ sygal-container \ php public/index.php generate-script-for-schema-clearing \ --connection=doctrine.connection.orm_default && \ docker cp sygal-container:${FROM_FILE_PATH} ${TO_FILE_PATH} && \ commentPrefixInFile ${TO_FILE_PATH} && \ echo ########################################################################### # Script de création des objets de la bdd, sans les contraintes de réf ###########################################################################" FROM_FILE_PATH="/tmp/oracle-generate-schema-SYGAL-from-SYGAL.sql" TO_FILE_PATH="${OUTPUT_DIR}/00-oracle-generate-schema-SYGAL.sql" docker exec \ -it \ -w /app \ sygal-container \ php public/index.php generate-script-for-schema-creation \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default \ --ref-constraints-included=0 && \ docker cp sygal-container:${FROM_FILE_PATH} ${TO_FILE_PATH} && \ commentPrefixInFile ${TO_FILE_PATH} && \ sed -i 's/\(START WITH [0-9]\+\)/\/*\1*\//ig; s/\(CACHE [0-9]\+\)/\/*\1*\//ig' \ ${TO_FILE_PATH} echo ########################################################################### # Scripts d'insertions de données ###########################################################################" FROM_FILE_PATH="/tmp/inserts" TO_FILE_PATH="${OUTPUT_DIR}/02-inserts" 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 echo "FROM=${FROM_FILE_PATH} TO=${TO_FILE_PATH}" rm -rf ${TO_FILE_PATH} && mkdir -p ${TO_FILE_PATH} && \ docker exec \ -it \ -w /app \ sygal-container \ php public/index.php generate-scripts-for-data-inserts \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default \ --tables=${TABLES} \ --output-dir=${FROM_FILE_PATH} && \ docker cp sygal-container:${FROM_FILE_PATH}/. ${TO_FILE_PATH} && \ for f in ${TO_FILE_PATH}/*; do commentPrefixInFile ${f}; replaceHistoIdInFile ${f} ${HISTO_ID_SUBSTIT}; done echo ########################################################################### # Script de création des contraintes de références ###########################################################################" FROM_FILE_PATH="/tmp/oracle-generate-ref-constraints-SYGAL-from-SYGAL.sql" TO_FILE_PATH="${OUTPUT_DIR}/03-oracle-generate-ref-constraints-SYGAL.sql" docker exec \ -it \ -w /app \ sygal-container \ php public/index.php generate-script-for-ref-constraints-creation \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default && \ docker cp sygal-container:${FROM_FILE_PATH} ${TO_FILE_PATH} && \ commentPrefixInFile ${TO_FILE_PATH} # 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 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_INSERTS="/tmp/inserts" FROM_FILE_PATH_REF="/tmp/oracle-generate-ref-constraints-SYGAL-from-SYGAL.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_INSERTS="${OUTPUT_DIR}/02-inserts" TO_FILE_PATH_REF="${OUTPUT_DIR}/03-oracle-generate-ref-constraints-SYGAL.sql" # récupération des scripts SQL générés docker cp sygal-container:${FROM_FILE_PATH_CLEAR} ${TO_FILE_PATH_CLEAR} && \ docker cp sygal-container:${FROM_FILE_PATH_SCHEMA} ${TO_FILE_PATH_SCHEMA} && \ docker cp sygal-container:${FROM_FILE_PATH_INSERTS}/. ${TO_FILE_PATH_INSERTS} && \ docker cp sygal-container:${FROM_FILE_PATH_REF} ${TO_FILE_PATH_REF} echo echo "> Terminé." Loading Loading
bin/README.md +5 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,11 @@ Les autres scripts gérés, eux, à la main sont : Usage : ```bash # génération des scripts ./generate-database-scripts.sh # mise à jour du dépôt cp -r /tmp/sygal-doc/database/* database/ ``` Mise à jour dans ` database` des scripts générés No newline at end of file
bin/docker/gen-db-scripts.sh 0 → 100755 +56 −0 Original line number Diff line number Diff line #!/usr/bin/env bash # 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 sed -i 's/\(START WITH [0-9]\+\)/\/*\1*\//ig; s/\(CACHE [0-9]\+\)/\/*\1*\//ig' ${f} done } # 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} done } # fonction remplaçant par exemple "/*HISTO::*/1234" par "$2/*SUBSTIT*/" dans le(s) fichier(s) spécifié(s) en $1 replaceHistoIdInFile() { for f in $1; do sed -i "s/\/\*HISTO::\*\/[0-9]\+/$2\/\*SUBSTIT\*\//ig" ${f} 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_INSERTS="/tmp/inserts" FROM_FILE_PATH_REF="/tmp/oracle-generate-ref-constraints-SYGAL-from-SYGAL.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 rm -rf ${FROM_FILE_PATH_INSERTS} && mkdir -p ${FROM_FILE_PATH_INSERTS} php public/index.php generate-script-for-schema-clearing \ --connection=doctrine.connection.orm_default && \ \ php public/index.php generate-script-for-schema-creation \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default \ --ref-constraints-included=0 && \ \ php public/index.php generate-scripts-for-data-inserts \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default \ --tables=${TABLES} \ --output-dir=${FROM_FILE_PATH_INSERTS} && \ \ php public/index.php generate-script-for-ref-constraints-creation \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default && \ \ commentPrefixInFile ${FROM_FILE_PATH_CLEAR} && \ commentPrefixInFile ${FROM_FILE_PATH_SCHEMA} && \ commentSeqOptionsInFile ${FROM_FILE_PATH_SCHEMA} && \ commentPrefixInFile "${FROM_FILE_PATH_INSERTS}/*" && \ replaceHistoIdInFile "${FROM_FILE_PATH_INSERTS}/*" ${HISTO_ID_SUBSTIT} && \ commentPrefixInFile ${FROM_FILE_PATH_REF}
bin/generate-database-scripts.sh +19 −82 Original line number Diff line number Diff line Loading @@ -14,88 +14,25 @@ OUTPUT_DIR=/tmp/sygal-doc/database [[ -d ${OUTPUT_DIR} ]] && echo "Le répertoire de destination existe déjà : ${OUTPUT_DIR}" && exit 1 mkdir -p ${OUTPUT_DIR} # fonction remplaçant 'SYGAL.' par '/*SYGAL.*/' et '"SYGAL".' par '/*"SYGAL".*/' dans le fichier spécifié commentPrefixInFile() { sed -i 's/\(SYGAL\.\)/\/*\1*\//ig' $1 sed -i 's/\("SYGAL"\.\)/\/*\1*\//ig' $1 } # fonction remplaçant par exemple "/*HISTO::*/1234" par "$2/*SUBSTIT*/" dans le fichier spécifié en $1 replaceHistoIdInFile() { sed -i "s/\/\*HISTO::\*\/[0-9]\+/$2\/\*SUBSTIT\*\//ig" $1 } echo ########################################################################## # Script de vidage de la bdd existante ##########################################################################" FROM_FILE_PATH="/tmp/oracle-clear-schema-SYGAL.sql" TO_FILE_PATH="${OUTPUT_DIR}/00-oracle-clear-schema-SYGAL.sql" docker exec \ -it \ -w /app \ sygal-container \ php public/index.php generate-script-for-schema-clearing \ --connection=doctrine.connection.orm_default && \ docker cp sygal-container:${FROM_FILE_PATH} ${TO_FILE_PATH} && \ commentPrefixInFile ${TO_FILE_PATH} && \ echo ########################################################################### # Script de création des objets de la bdd, sans les contraintes de réf ###########################################################################" FROM_FILE_PATH="/tmp/oracle-generate-schema-SYGAL-from-SYGAL.sql" TO_FILE_PATH="${OUTPUT_DIR}/00-oracle-generate-schema-SYGAL.sql" docker exec \ -it \ -w /app \ sygal-container \ php public/index.php generate-script-for-schema-creation \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default \ --ref-constraints-included=0 && \ docker cp sygal-container:${FROM_FILE_PATH} ${TO_FILE_PATH} && \ commentPrefixInFile ${TO_FILE_PATH} && \ sed -i 's/\(START WITH [0-9]\+\)/\/*\1*\//ig; s/\(CACHE [0-9]\+\)/\/*\1*\//ig' \ ${TO_FILE_PATH} echo ########################################################################### # Scripts d'insertions de données ###########################################################################" FROM_FILE_PATH="/tmp/inserts" TO_FILE_PATH="${OUTPUT_DIR}/02-inserts" 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 echo "FROM=${FROM_FILE_PATH} TO=${TO_FILE_PATH}" rm -rf ${TO_FILE_PATH} && mkdir -p ${TO_FILE_PATH} && \ docker exec \ -it \ -w /app \ sygal-container \ php public/index.php generate-scripts-for-data-inserts \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default \ --tables=${TABLES} \ --output-dir=${FROM_FILE_PATH} && \ docker cp sygal-container:${FROM_FILE_PATH}/. ${TO_FILE_PATH} && \ for f in ${TO_FILE_PATH}/*; do commentPrefixInFile ${f}; replaceHistoIdInFile ${f} ${HISTO_ID_SUBSTIT}; done echo ########################################################################### # Script de création des contraintes de références ###########################################################################" FROM_FILE_PATH="/tmp/oracle-generate-ref-constraints-SYGAL-from-SYGAL.sql" TO_FILE_PATH="${OUTPUT_DIR}/03-oracle-generate-ref-constraints-SYGAL.sql" docker exec \ -it \ -w /app \ sygal-container \ php public/index.php generate-script-for-ref-constraints-creation \ --src-connection=doctrine.connection.orm_default \ --dst-connection=doctrine.connection.orm_default && \ docker cp sygal-container:${FROM_FILE_PATH} ${TO_FILE_PATH} && \ commentPrefixInFile ${TO_FILE_PATH} # 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 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_INSERTS="/tmp/inserts" FROM_FILE_PATH_REF="/tmp/oracle-generate-ref-constraints-SYGAL-from-SYGAL.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_INSERTS="${OUTPUT_DIR}/02-inserts" TO_FILE_PATH_REF="${OUTPUT_DIR}/03-oracle-generate-ref-constraints-SYGAL.sql" # récupération des scripts SQL générés docker cp sygal-container:${FROM_FILE_PATH_CLEAR} ${TO_FILE_PATH_CLEAR} && \ docker cp sygal-container:${FROM_FILE_PATH_SCHEMA} ${TO_FILE_PATH_SCHEMA} && \ docker cp sygal-container:${FROM_FILE_PATH_INSERTS}/. ${TO_FILE_PATH_INSERTS} && \ docker cp sygal-container:${FROM_FILE_PATH_REF} ${TO_FILE_PATH_REF} echo echo "> Terminé." Loading