diff --git a/tools/restore_scodoc9_data.sh b/tools/restore_scodoc9_data.sh index 7a903437..43624ba8 100755 --- a/tools/restore_scodoc9_data.sh +++ b/tools/restore_scodoc9_data.sh @@ -17,42 +17,34 @@ check_uid_root "$0" # Usage usage() { - echo "Usage: $0 [OPT] archive" + echo "Usage: $0 [ --keep-env ] archive" echo "Exemple: $0 /tmp/mon-scodoc.tgz" - echo "sans --keep_env restaure la sauvegarde complète (données et configuration)" - echo "avec --keep_env restaure les données sauvegardées dans la base en conservant la configuration courante" + echo "OPTION" + echo "--keep_env garde la configuration courante" exit 1 } if (($# < 1 || $# > 2)) then - echo 'cas 1' usage elif [ $# -eq 2 -a $1 != '--keep-env' -a $2 != '--keep-env' ] ; then - echo 'cas 2' usage elif [ $# -eq 1 ] ; then - echo 'cas 3' echo "restauration des données et de la configuration originale (production)" -else - echo 'cas 4' - echo "restauration des données dans la configuration actuelle" -fi - -# Hypothèse: la base sauvegardée s'appelle SCODOC (dans SCODOC.dump) -SRC=$1 -KEEP_ENV="$2" -DB_DUMP="${SCODOC_VAR_DIR}"/SCODOC.dump -DB_CURRENT=$(su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask scodoc-database -n)") - -# computes target database name (SCODOC if production else current database) -if [ -z "$2" ] ; then # pas d'option --keepenv + SRC=$1 DB_DEST="SCODOC" -elif [ "$2" == "--keep_env" ] ; then - DB_DEST="$DB_DB_CURRENT" else - echo + echo "restauration des données dans la configuration actuelle" + DB_CURRENT=$(su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask scodoc-database -n)") + DB_DEST="$DB_CURRENT" + KEEP=1 + if [ $1 = '--keep-env' ]; then + SRC=$2 + else + SRC=$1 + fi fi +DB_DUMP="${SCODOC_VAR_DIR}"/SCODOC.dump # Safety check echo "Ce script va remplacer les donnees de votre installation ScoDoc par celles" @@ -62,8 +54,8 @@ echo echo "Attention: TOUTES LES DONNEES DE CE SCODOC SERONT REMPLACEES !" echo "Notamment, tous les utilisateurs et departements existants seront effaces !" echo -echo "La base SQL $DBNAME sera effacée et remplacée !!!" -echo +echo "La base SQL $DB_CURRENT sera effacée et remplacée !!!" +echo echo -n "Voulez vous poursuivre cette operation ? (y/n) [n]" read -r ans if [ ! "$(norm_ans "$ans")" = 'Y' ] @@ -73,8 +65,13 @@ then fi # -- Stop ScoDoc -echo "Arrêt de scodoc9..." -systemctl stop scodoc9 +if [ $KEEP -ne 1 ]; then + echo "Arrêt de scodoc9..." + systemctl stop scodoc9 +else + echo -n "Assurez-vous d'avoir arrété le serveur scodoc (validez pour continuer)" + read ans +fi # Clear caches echo "Purge des caches..." @@ -113,7 +110,7 @@ if [ ! -z $KEEP_ENV ] ; then echo "redémarrez scodoc selon votre configuration" else # -- Apply migrations if needed (only on "production" database, = SCODOC sauf config particulière) - echo "restauratioin environnement de production" + echo "restauration environnement de production" echo "Chargement de la base SQL..." su -c "pg_restore -d $DB_DEST $DB_DUMP" "$SCODOC_USER" || die "Erreur chargement de la base SQL" export FLASK_ENV="production" # peut-être pas utile? : .env a été recopié