qques mise au point

This commit is contained in:
Jean-Marie Place 2021-10-05 16:23:31 +02:00
parent ebbb70352e
commit 928cc8bce1

View File

@ -17,42 +17,34 @@ check_uid_root "$0"
# Usage # Usage
usage() { usage() {
echo "Usage: $0 [OPT] archive" echo "Usage: $0 [ --keep-env ] archive"
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 "OPTION"
echo "avec --keep_env restaure les données sauvegardées dans la base en conservant la configuration courante" echo "--keep_env garde la configuration courante"
exit 1 exit 1
} }
if (($# < 1 || $# > 2)) if (($# < 1 || $# > 2))
then then
echo 'cas 1'
usage usage
elif [ $# -eq 2 -a $1 != '--keep-env' -a $2 != '--keep-env' ] ; then elif [ $# -eq 2 -a $1 != '--keep-env' -a $2 != '--keep-env' ] ; then
echo 'cas 2'
usage usage
elif [ $# -eq 1 ] ; then elif [ $# -eq 1 ] ; then
echo 'cas 3'
echo "restauration des données et de la configuration originale (production)" echo "restauration des données et de la configuration originale (production)"
else SRC=$1
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
DB_DEST="SCODOC" DB_DEST="SCODOC"
elif [ "$2" == "--keep_env" ] ; then
DB_DEST="$DB_DB_CURRENT"
else 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 fi
DB_DUMP="${SCODOC_VAR_DIR}"/SCODOC.dump
# Safety check # Safety check
echo "Ce script va remplacer les donnees de votre installation ScoDoc par celles" 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 "Attention: TOUTES LES DONNEES DE CE SCODOC SERONT REMPLACEES !"
echo "Notamment, tous les utilisateurs et departements existants seront effaces !" echo "Notamment, tous les utilisateurs et departements existants seront effaces !"
echo echo
echo "La base SQL $DBNAME sera effacée et remplacée !!!" echo "La base SQL $DB_CURRENT sera effacée et remplacée !!!"
echo echo
echo -n "Voulez vous poursuivre cette operation ? (y/n) [n]" echo -n "Voulez vous poursuivre cette operation ? (y/n) [n]"
read -r ans read -r ans
if [ ! "$(norm_ans "$ans")" = 'Y' ] if [ ! "$(norm_ans "$ans")" = 'Y' ]
@ -73,8 +65,13 @@ then
fi fi
# -- Stop ScoDoc # -- Stop ScoDoc
echo "Arrêt de scodoc9..." if [ $KEEP -ne 1 ]; then
systemctl stop scodoc9 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 # Clear caches
echo "Purge des caches..." echo "Purge des caches..."
@ -113,7 +110,7 @@ if [ ! -z $KEEP_ENV ] ; then
echo "redémarrez scodoc selon votre configuration" echo "redémarrez scodoc selon votre configuration"
else else
# -- 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 "restauration environnement de production"
echo "Chargement de la base SQL..." echo "Chargement de la base SQL..."
su -c "pg_restore -d $DB_DEST $DB_DUMP" "$SCODOC_USER" || die "Erreur 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é