This commit is contained in:
Jean-Marie Place 2021-10-04 17:14:03 +02:00
parent 14d4233169
commit 1ac984569d
1 changed files with 20 additions and 11 deletions

View File

@ -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é."