From: Guillaume Pellerin Date: Fri, 15 Jan 2021 16:35:51 +0000 (+0100) Subject: Merge branch 'dev' of https://github.com/Ircam-Web/mezzo-bin into dev X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=0930d1352f933dba7f780707d6eeafa698ec95bb;p=docker-django-scripts.git Merge branch 'dev' of https://github.com/Ircam-Web/mezzo-bin into dev --- 0930d1352f933dba7f780707d6eeafa698ec95bb diff --cc dev/local/restore_db.sh index 675e485,a412240..04a2013 --- a/dev/local/restore_db.sh +++ b/dev/local/restore_db.sh @@@ -6,12 -7,28 +7,28 @@@ set - echo "Restoring..." + # Migrate backup to date-based format + if [ -f /srv/backup/postgres.dump ]; then + echo 'A backup without date was found. Moving it to postgres_old.dump' + mv /srv/backup/postgres.dump /srv/backup/postgres_old.dump + if [ ! -f /srv/backup/postgres_latest.dump ]; then + ln -s /srv/backup/postgres_old.dump /srv/backup/postgres_latest.dump + fi + fi + # import database functions of type if [ ! -z "$MYSQL_ROOT_PASSWORD" ]; then - gunzip < /srv/backup/mariadb.dump.gz | mysql -h db $MYSQL_DATABASE -uroot -p$MYSQL_ROOT_PASSWORD + gunzip < /srv/backup/mysql.dump.gz | mysql -h db $MYSQL_DATABASE -uroot -p$MYSQL_ROOT_PASSWORD elif [ ! -z "$POSTGRES_PASSWORD" ]; then export PGPASSWORD=$POSTGRES_PASSWORD - pg_restore -c -C -hdb -Upostgres -dpostgres /srv/backup/postgres.dump + echo "Killing clients..." + psql -hdb -Upostgres -dpostgres -c "SELECT pid, (SELECT pg_terminate_backend(pid)) as killed from pg_stat_activity WHERE state LIKE 'idle';" + echo "Dropping db..." + dropdb -hdb -Upostgres postgres + echo "Creating new db..." + createdb -hdb -Upostgres -T template0 postgres + echo "Importing dump..." + pg_restore -C -c -hdb -Upostgres -dpostgres /srv/backup/${1:-postgres_latest.dump} fi echo "Restore done!" diff --cc prod/local/backup_db.sh index b234a8b,70ac037..174790b --- a/prod/local/backup_db.sh +++ b/prod/local/backup_db.sh @@@ -4,12 -4,27 +4,27 @@@ # export POSTGRES="$(dpkg --get-selections | grep postgres 2>&1)" # export MYSQL="$(dpkg --get-selections | grep mysql 2>&1)" + # Stop execution if some command fails + set -e + + # Migrate backup to date-based format + if [ -f /srv/backup/postgres.dump ]; then + echo 'A backup without date was found. Moving it to postgres_old.dump' + mv /srv/backup/postgres.dump /srv/backup/postgres_old.dump + if [ ! -f /srv/backup/postgres_latest.dump ]; then + ln -s /srv/backup/postgres_old.dump /srv/backup/postgres_latest.dump + fi + fi + if [ ! -z "$MYSQL_PASSWORD" ]; then export MYSQL_PWD=$MYSQL_PASSWORD - mysqldump $MYSQL_DATABASE -hdb -u$MYSQL_USER | gzip > /srv/backup/mariadb.dump.gz + mysqldump $MYSQL_DATABASE -hdb -u$MYSQL_USER | gzip > /srv/backup/mysql.dump.gz elif [ ! -z "$POSTGRES_PASSWORD" ]; then export PGPASSWORD=$POSTGRES_PASSWORD - pg_dump -Fc -hdb -Upostgres -dpostgres > /srv/backup/postgres.dump + now=$(date +"%m_%d_%Y_%H_%M_%S") + pg_dump -Fc -hdb -Upostgres -dpostgres > /srv/backup/postgres_$now.dump + rm -f /srv/backup/postgres_latest.dump + ln -s /srv/backup/postgres_$now.dump /srv/backup/postgres_latest.dump fi echo "Backup done!"