qques mise au point

This commit is contained in:
Jean-Marie Place 2021-10-05 16:23:31 +02:00
parent ebbb70352e
commit 928cc8bce1
1 changed files with 24 additions and 27 deletions

View File

@ -17,42 +17,34 @@ check_uid_root "$0"
# Usage
usage() {
echo "Usage: $0 [OPT] archive"
echo "Usage: $0 [ --keep-env ] archive"
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"
echo "OPTION"
echo "--keep_env garde la configuration courante"
exit 1
}
if (($# < 1 || $# > 2))
then
echo 'cas 1'
usage
elif [ $# -eq 2 -a $1 != '--keep-env' -a $2 != '--keep-env' ] ; then
echo 'cas 2'
usage
elif [ $# -eq 1 ] ; then
echo 'cas 3'
echo "restauration des données et de la configuration originale (production)"
else
echo 'cas 4'
echo "restauration des données dans la configuration actuelle"
fi
# Hypothèse: la base sauvegardée s'appelle SCODOC (dans SCODOC.dump)
SRC=$1
KEEP_ENV="$2"
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
SRC=$1
DB_DEST="SCODOC"
elif [ "$2" == "--keep_env" ] ; then
DB_DEST="$DB_DB_CURRENT"
else
echo
echo "restauration des données dans la configuration actuelle"
DB_CURRENT=$(su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask scodoc-database -n)")
DB_DEST="$DB_CURRENT"
KEEP=1
if [ $1 = '--keep-env' ]; then
SRC=$2
else
SRC=$1
fi
fi
DB_DUMP="${SCODOC_VAR_DIR}"/SCODOC.dump
# Safety check
echo "Ce script va remplacer les donnees de votre installation ScoDoc par celles"
@ -62,8 +54,8 @@ echo
echo "Attention: TOUTES LES DONNEES DE CE SCODOC SERONT REMPLACEES !"
echo "Notamment, tous les utilisateurs et departements existants seront effaces !"
echo
echo "La base SQL $DBNAME sera effacée et remplacée !!!"
echo
echo "La base SQL $DB_CURRENT sera effacée et remplacée !!!"
echo
echo -n "Voulez vous poursuivre cette operation ? (y/n) [n]"
read -r ans
if [ ! "$(norm_ans "$ans")" = 'Y' ]
@ -73,8 +65,13 @@ then
fi
# -- Stop ScoDoc
echo "Arrêt de scodoc9..."
systemctl stop scodoc9
if [ $KEEP -ne 1 ]; then
echo "Arrêt de scodoc9..."
systemctl stop scodoc9
else
echo -n "Assurez-vous d'avoir arrété le serveur scodoc (validez pour continuer)"
read ans
fi
# Clear caches
echo "Purge des caches..."
@ -113,7 +110,7 @@ if [ ! -z $KEEP_ENV ] ; then
echo "redémarrez scodoc selon votre configuration"
else
# -- Apply migrations if needed (only on "production" database, = SCODOC sauf config particulière)
echo "restauratioin environnement de production"
echo "restauration 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é