This commit is contained in:
Jean-Marie Place 2021-10-04 17:14:03 +02:00
parent 14d4233169
commit 1ac984569d

View File

@ -16,13 +16,17 @@ source "$SCRIPT_DIR/utils.sh"
check_uid_root "$0" check_uid_root "$0"
# Usage # Usage
if (($# < 1 || $# > 2)) if (($# < 1 || $# > 2)) || [ ! -z "$2" ] && [ ! "$2" == "--keep-env" ]
then then
echo "Usage: $0 archive [--keep_env]" echo "Usage: $0 archive [--keep-env]"
echo "Exemple: $0 /tmp/mon-scodoc.tgz" echo "Exemple: $0 /tmp/mon-scodoc.tgz"
echo "sans --keep_env restaure la sauvegarde complète (données et configuration)" 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 "avec --keep_env restaure les données sauvegardées dans la base en conservant la configuration courante"
exit 1 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 fi
# Hypothèse: la base sauvegardée s'appelle SCODOC (dans SCODOC.dump) # 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)") 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) # 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" DB_DEST="SCODOC"
elif [ "$2" = "--keep_env" ] ; then elif [ "$2" == "--keep_env" ] ; then
DB_DEST="$DB_DB_CURRENT" DB_DEST="$DB_DB_CURRENT"
else
echo
fi fi
# Safety check # Safety check
@ -88,20 +94,23 @@ then
fi fi
su -c "createdb $DB_DEST" "$SCODOC_USER" || die "Erreur création db" su -c "createdb $DB_DEST" "$SCODOC_USER" || die "Erreur création db"
echo "Chargement de la base SQL..." if [ ! -z $KEEP_ENV ] ; then
if $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 "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" su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade)" "$SCODOC_USER"
echo "conservation de l'environnement actuel" echo "redémarrez scodoc selon votre configuration"
cp "$SCODOC_VAR_DIR".old/.env "$SCODOC_VAR_DIR"/.env
else 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) # -- 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" # peut-être pas utile? : .env a été recopié
su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade)" "$SCODOC_USER" su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade)" "$SCODOC_USER"
# -- Start ScoDoc
systemctl start scodoc9
fi fi
# -- Start ScoDoc
systemctl start scodoc9
echo "Terminé." echo "Terminé."