forked from ScoDoc/ScoDoc
début script migration ScoDoc 7 => ScoDoc 8
This commit is contained in:
parent
5e78875820
commit
c0f3bdedcd
101
tools/migrate_from_scodoc7.sh
Executable file
101
tools/migrate_from_scodoc7.sh
Executable file
@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Migre une install ScoDoc 7 vers ScoDoc 8
|
||||
# Le ScoDoc7 est supposé être dans /opt/scodoc/Products/ScoDoc
|
||||
# Le nouveau est /opt/scodoc8/
|
||||
#
|
||||
# L'install ScoDoc7 de départ doit impérativement être à jour (upgrade.sh).
|
||||
#
|
||||
# 1- Utilisateur Unix:
|
||||
# scodoc7 tournait comme www-data
|
||||
# scodoc8 tourne sous l'utilisateur unix scodoc
|
||||
#
|
||||
# 2- Utilisateur postgresql (bases de données)
|
||||
# scodoc7 les bases appartenaient à "www-data"
|
||||
# s'assure que les bases de département (trouvées dans config/dept/*.cfg)
|
||||
# appartiennent à "scodoc"
|
||||
# idem pour la base SCOUSERS (avant sa migration vers SCO8USERS)
|
||||
#
|
||||
# 3- Fichiers de données et config locale:
|
||||
# archives, photos: /opt/scodoc/var/ => /opt/scodoc8/var
|
||||
#
|
||||
# 4- TODO migrer de Apache à nginx, installer memcached, scripts service systemd
|
||||
#
|
||||
|
||||
source config.sh
|
||||
source utils.sh
|
||||
check_uid_root
|
||||
|
||||
SCODOC7_HOME="/opt/scodoc"
|
||||
SCODOC7_DIR="${SCODOC7_HOME}/Products/ScoDoc"
|
||||
|
||||
# --- 1. Utilisateur UNIX
|
||||
migrate_unix_user() {
|
||||
if [ $(id -u "${SCODOC_USER}" &> /dev/null) ]
|
||||
then
|
||||
echo "Unix user ${SCODOC_USER} exists"
|
||||
else
|
||||
echo "Creating unix user ${SCODOC_USER}"
|
||||
adduser --no-create-home --shell /bin/bash --gecos "ScoDoc service" ${SCODOC_USER} || die "failed to create user"
|
||||
fi
|
||||
}
|
||||
|
||||
migrate_file_ownership() {
|
||||
echo "Changing owner of $SCODOC_DIR to ${SCODOC_USER}"
|
||||
chown -R "${SCODOC_USER}:${SCODOC_GROUP}" "$SCODOC_DIR"
|
||||
}
|
||||
|
||||
# --- 2. Propriétaire des bases de données
|
||||
# Bases appartenant à www-data:
|
||||
migrate_databse_ownsership() {
|
||||
SCO7_BASES=$(su -c "psql -l -t | grep www-data" "$POSTGRES_SUPERUSER" | awk -F '|' '{print $1}')
|
||||
for base in $SCO7_BASES
|
||||
do
|
||||
su -c "psql -c 'REASSIGN OWNED BY \"www-data\" TO scodoc;' $base" "$POSTGRES_SUPERUSER"
|
||||
done
|
||||
su -c "psql -c 'REASSIGN OWNED BY \"www-data\" TO scodoc;'" "$POSTGRES_SUPERUSER"
|
||||
}
|
||||
|
||||
# --- 3. Fichiers locaux: /opt/scodoc/var => /opt/scodoc8/var
|
||||
migrate_local_files() {
|
||||
SCODOC_VAR_DIR_BACKUP="$SCODOC_VAR_DIR".bak
|
||||
if [ -e "$SCODOC_VAR_DIR_BACKUP" ]
|
||||
then
|
||||
die "supprimer ou déplacer $SCODOC_VAR_DIR_BACKUP avant de continuer"
|
||||
fi
|
||||
if [ -e "$SCODOC_VAR_DIR" ]
|
||||
then
|
||||
echo "renomme $SCODOC_VAR_DIR en $SCODOC_VAR_DIR_BACKUP"
|
||||
mv "$SCODOC_VAR_DIR" "$SCODOC_VAR_DIR_BACKUP"
|
||||
fi
|
||||
mv "${SCODOC7_HOME}"/var/* "$SCODOC_VAR_DIR" || die "migrate_local_files failed"
|
||||
}
|
||||
|
||||
|
||||
# ------ MAIN
|
||||
|
||||
migrate_unix_user
|
||||
|
||||
echo -n "Changer si nécessaire le propriétaire des fichiers de $SCODOC_DIR ? (y/n) [y] "
|
||||
read -r ans
|
||||
if [ "$(norm_ans "$ans")" != 'N' ]
|
||||
then
|
||||
migrate_file_ownership
|
||||
fi
|
||||
|
||||
echo -n "Changer si nécessaire le propriétaire des bases de données SQL ? (y/n) [y] "
|
||||
read -r ans
|
||||
if [ "$(norm_ans "$ans")" != 'N' ]
|
||||
then
|
||||
migrate_databse_ownsership
|
||||
fi
|
||||
|
||||
echo "Les fichiers locaux de ScoDoc (configuration, photos, procès-verbaux...)"
|
||||
echo "sont maintenant stockées dans $SCODOC_VAR_DIR"
|
||||
echo -n "Copier les fichiers locaux de ScoDoc7 ? (y/n) [y] "
|
||||
read -r ans
|
||||
if [ "$(norm_ans "$ans")" != 'N' ]
|
||||
then
|
||||
migrate_local_files
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user