This commit is contained in:
Jean-Marie Place 2021-10-04 17:14:03 +02:00
parent 814b47c2e1
commit 92782d7d75
1 changed files with 21 additions and 12 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,15 +36,17 @@ 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
echo "Ce script va remplacer les donnees de votre installation ScoDoc par celles"
echo "enregistrees dans le fichier fourni."
echo "enregistrées dans le fichier fourni."
echo "Ce fichier doit avoir ete cree par le script save_scodoc9_data.sh."
echo
echo "Attention: TOUTES LES DONNEES DE CE SCODOC SERONT REMPLACEES !"
@ -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é."