forked from ScoDoc/ScoDoc
Merge branch 'jmplace-gestion_scodoc-data.old'
This commit is contained in:
commit
d622b313b0
@ -24,53 +24,74 @@ 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
|
||||||
elif [ $# -eq 2 -a $1 != '--keep-env' -a $2 != '--keep-env' ] ; then
|
elif [ $# -eq 2 ] && [ "$1" != "--keep-env" ] && [ "$2" != "--keep-env" ]
|
||||||
|
then
|
||||||
usage
|
usage
|
||||||
elif [ $# -eq 1 ] ; then
|
elif [ $# -eq 1 ]
|
||||||
|
then
|
||||||
echo "restauration des données et de la configuration originale (production)"
|
echo "restauration des données et de la configuration originale (production)"
|
||||||
SRC=$1
|
SRC="$1"
|
||||||
DB_DEST="SCODOC"
|
DB_DEST="SCODOC"
|
||||||
else
|
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" ]
|
||||||
SRC=$2
|
then
|
||||||
|
SRC="$2"
|
||||||
else
|
else
|
||||||
SRC=$1
|
SRC="$1"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
DB_DUMP="${SCODOC_VAR_DIR}"/SCODOC.dump
|
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 données de votre installation ScoDoc par celles"
|
||||||
echo "enregistrées 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 "Ce fichier doit avoir été créé par le script save_scodoc9_data.sh."
|
||||||
echo
|
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 départements existants seront effacés !"
|
||||||
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
|
||||||
read -r ans
|
SCODOC_VAR_OLD=${SCODOC_VAR_DIR}.old
|
||||||
if [ ! "$(norm_ans "$ans")" = 'Y' ]
|
if [ -e "$SCODOC_VAR_DIR" ] && [ -e "$SCODOC_VAR_OLD" ]
|
||||||
then
|
then
|
||||||
echo "Annulation"
|
echo "Une ancienne sauvegarde (\"$SCODOC_VAR_OLD\" en date du $(stat -c %w "$SCODOC_VAR_OLD") ) va être effacée."
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
if [ -n "$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
|
||||||
|
if [ ! "$(norm_ans "$ans")" = "Y" ]
|
||||||
|
then
|
||||||
|
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
|
||||||
@ -86,7 +107,7 @@ fi
|
|||||||
|
|
||||||
# -- Ouverture archive
|
# -- Ouverture archive
|
||||||
echo "Ouverture archive $SRC..."
|
echo "Ouverture archive $SRC..."
|
||||||
(cd $(dirname "$SCODOC_VAR_DIR"); tar xfz "$SRC") || die "Error opening archive"
|
(cd "$(dirname "$SCODOC_VAR_DIR")"; tar xfz "$SRC") || die "Error opening archive"
|
||||||
|
|
||||||
# -- Ckeck/fix owner
|
# -- Ckeck/fix owner
|
||||||
echo "Vérification du propriétaire..."
|
echo "Vérification du propriétaire..."
|
||||||
@ -103,7 +124,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 -p "$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 +140,4 @@ else
|
|||||||
systemctl start scodoc9
|
systemctl start scodoc9
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
echo "Terminé."
|
echo "Terminé."
|
||||||
|
Loading…
Reference in New Issue
Block a user