From 1ac984569d96a8b722b1c717b42055a682df5d86 Mon Sep 17 00:00:00 2001 From: Jean-Marie Place Date: Mon, 4 Oct 2021 17:14:03 +0200 Subject: [PATCH] WIP --- tools/restore_scodoc9_data.sh | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/tools/restore_scodoc9_data.sh b/tools/restore_scodoc9_data.sh index c75c8818..1fb64855 100755 --- a/tools/restore_scodoc9_data.sh +++ b/tools/restore_scodoc9_data.sh @@ -16,13 +16,17 @@ source "$SCRIPT_DIR/utils.sh" check_uid_root "$0" # Usage -if (($# < 1 || $# > 2)) +if (($# < 1 || $# > 2)) || [ ! -z "$2" ] && [ ! "$2" == "--keep-env" ] 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) @@ -32,10 +36,12 @@ 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 "$KEEP_ENV" ] ; then # pas d'option --keepenv +if [ -z "$2" ] ; 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 @@ -88,20 +94,23 @@ then fi su -c "createdb $DB_DEST" "$SCODOC_USER" || die "Erreur création db" -echo "Chargement de la base SQL..." -if $KEEP_ENV ; then +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..." su -c "pg_restore -f - $DB_DUMP | psql -q $DB_DEST" "$SCODOC_USER" >/dev/null || die "Erreur chargement/renommage de la base SQL" su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade)" "$SCODOC_USER" - echo "conservation de l'environnement actuel" - cp "$SCODOC_VAR_DIR".old/.env "$SCODOC_VAR_DIR"/.env + 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é 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é."