diff --git a/tools/restore_scodoc9_data.sh b/tools/restore_scodoc9_data.sh index 1fb64855..f96eeb2c 100755 --- a/tools/restore_scodoc9_data.sh +++ b/tools/restore_scodoc9_data.sh @@ -16,17 +16,13 @@ source "$SCRIPT_DIR/utils.sh" check_uid_root "$0" # Usage -if (($# < 1 || $# > 2)) || [ ! -z "$2" ] && [ ! "$2" == "--keep-env" ] +if (($# < 1 || $# > 2)) then - echo "Usage: $0 archive [--keep-env]" + echo "Usage: $0 archive [--keep_env]" 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" exit 1 -elif $# -eq 1 ; then - echo "restauration des données et de la configuration originale (production)" -else - echo "restauration des données dans la configuration actuelle" fi # Hypothèse: la base sauvegardée s'appelle SCODOC (dans SCODOC.dump) @@ -36,12 +32,10 @@ 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 +if [ -z "$KEEP_ENV" ] ; then # pas d'option --keepenv DB_DEST="SCODOC" -elif [ "$2" == "--keep_env" ] ; then +elif [ "$2" = "--keep_env" ] ; then DB_DEST="$DB_DB_CURRENT" -else - echo fi # Safety check @@ -94,23 +88,19 @@ then fi su -c "createdb $DB_DEST" "$SCODOC_USER" || die "Erreur création db" -if [ ! -z $KEEP_ENV ] ; then - echo "conservation de la configuration actuelle" - cp "$SCODOC_VAR_DIR".old/.env "$SCODOC_VAR_DIR"/.env - echo "récupération des données..." +echo "Chargement de la base SQL..." +if $KEEP_ENV ; then su -c "pg_restore -f - $DB_DUMP | psql -q $DB_DEST" "$SCODOC_USER" >/dev/null || die "Erreur chargement/renommage de la base SQL" + cp "$SCODOC_VAR_DIR".old/.env "$SCODOC_VAR_DIR"/.env su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade)" "$SCODOC_USER" - echo "redémarrez scodoc selon votre configuration" else + su -c "pg_restore -d $DB_DEST $DB_DUMP "$SCODOC_USER" || die "Erreur chargement de la base SQL" # -- Apply migrations if needed (only on "production" database, = SCODOC sauf config particulière) - echo "restauratioin 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é + export FLASK_ENV="production" su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade)" "$SCODOC_USER" -# -- Start ScoDoc - systemctl start scodoc9 fi +# -- Start ScoDoc +systemctl start scodoc9 echo "Terminé."