1
0
forked from ScoDoc/ScoDoc

check scodoc-data.old ; correction bug --keep-env

This commit is contained in:
Jean-Marie PLACE 2022-01-05 06:09:55 +01:00
parent ff948cb98d
commit efe997fe55

View File

@ -24,6 +24,11 @@ usage() {
exit 1 exit 1
} }
# analyse de la ligne de commande
# calcule:
# SRC = fichier source de la restauration
# DB_DEST = base de données destination
# KEEP_ENV = vide si restauration à l'identique (i.e. production)
if (($# < 1 || $# > 2)) if (($# < 1 || $# > 2))
then then
usage usage
@ -37,7 +42,7 @@ else
echo "restauration des données dans la configuration actuelle" 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_CURRENT=$(su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask scodoc-database -n)")
DB_DEST="$DB_CURRENT" DB_DEST="$DB_CURRENT"
KEEP=1 KEEP_ENV=Y
if [ $1 = '--keep-env' ]; then if [ $1 = '--keep-env' ]; then
SRC=$2 SRC=$2
else else
@ -56,21 +61,34 @@ echo "Notamment, tous les utilisateurs et departements existants seront effaces
echo echo
echo "La base SQL $DB_CURRENT 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]" # Préparation si une copie 'antique' doit être effacée, demander confirmation, puis effacer
SCODOC_VAR_OLD=${SCODOC_VAR_DIR}.old
if [ -e "$SCODOC_VAR_DIR" ] && [ -e "$SCODOC_VAR_OLD" ]
then
echo "une ancienne sauvegarde ('$SCODOC_VAR_OLD' en date du $(stat -c %w $SCODOC_VAR_OLD) ) va être effacée."
echo
fi
if [ ! -z $KEEP_ENV ]
then
echo -n "restauration des données sans changement de configuration: Assurez-vous d'avoir arrété le serveur scodoc."
echo
fi
echo -n "Voulez vous poursuivre la restauration ? (y/n) [n]"
read -r ans read -r ans
if [ ! "$(norm_ans "$ans")" = 'Y' ] if [ ! "$(norm_ans "$ans")" = 'Y' ]
then then
echo "Annulation" echo "Annulation de la restauration par l\'utilisateur"
exit 1 exit 1
fi fi
rm -rf $SCODOC_VAR_OLD || die "Erreur suppression $SCODOC_VAR_OLD"
# -- Stop ScoDoc # -- Stop ScoDoc
if [ $KEEP -ne 1 ]; then if [ -z $KEEP_ENV ]
then
echo "Arrêt de scodoc9..." echo "Arrêt de scodoc9..."
systemctl stop scodoc9 systemctl stop scodoc9
else
echo -n "Assurez-vous d'avoir arrété le serveur scodoc (validez pour continuer)"
read ans
fi fi
# Clear caches # Clear caches
@ -103,7 +121,7 @@ su -c "createdb $DB_DEST" "$SCODOC_USER" || die "Erreur création db"
if [ ! -z $KEEP_ENV ] ; then if [ ! -z $KEEP_ENV ] ; then
echo "conservation de la configuration actuelle" echo "conservation de la configuration actuelle"
cp "$SCODOC_VAR_DIR".old/.env "$SCODOC_VAR_DIR"/.env cp "$SCODOC_VAR_OLD"/.env "$SCODOC_VAR_DIR"/.env
echo "récupération des données..." 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"
@ -119,5 +137,4 @@ else
systemctl start scodoc9 systemctl start scodoc9
fi fi
echo "Terminé." echo "Terminé."