From 6828cfa52c021b631e6f5beca9428bf550e0c985 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9s=20Maldonado?= <amaldona@etu.utc.fr>
Date: Wed, 18 Mar 2020 18:44:47 +0100
Subject: [PATCH] [DBBackup] Use 'custom' format for pg_dump backups...

...and restore via pg_restore.
---
 pica-db-backup/postgres-run.sh | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/pica-db-backup/postgres-run.sh b/pica-db-backup/postgres-run.sh
index ae4932c8..a06d7d36 100755
--- a/pica-db-backup/postgres-run.sh
+++ b/pica-db-backup/postgres-run.sh
@@ -11,6 +11,7 @@ BACKUP_FOLDER=${BACKUP_FOLDER:-"/backup/"}
 ping -c 1 -W 1 "${POSTGRES_HOST}" || { echo -e "\n=========== ${POSTGRES_HOST} not available, skipping backup... ===========\n"; exit 1; }
 
 BACKUP_CMD="pg_dump -w -c --format=c > $BACKUP_FOLDER"'${BACKUP_NAME}'
+RESTORE_CMD="pg_restore -c \$1"
 
 # Make sure backup folder exists
 mkdir -p "${BACKUP_FOLDER}"
@@ -31,13 +32,10 @@ export PGUSER=$POSTGRES_USER
 export PGPASSWORD=$POSTGRES_PASS
 
 DATE=\$(date +\%Y.\%m.\%d.\%H\%M\%S)
-BACKUP_NAME=\$DATE.sql
+BACKUP_NAME=\$DATE.dump
 
 echo "=> ${POSTGRES_SERVICE_NAME}: Backup started: \${BACKUP_NAME}"
 if ${BACKUP_CMD} ;then
-    echo " => Compress files $BACKUP_FOLDER\$DATE.tar.gz"
-    tar -czvf $BACKUP_FOLDER\$DATE.tar.gz $BACKUP_FOLDER\${BACKUP_NAME} && \
-    rm -rf $BACKUP_FOLDER\$BACKUP_NAME && \
     echo "${POSTGRES_SERVICE_NAME}:  Backup succeeded"
 else
     echo "${POSTGRES_SERVICE_NAME}: Backup failed"
@@ -64,14 +62,11 @@ export PGUSER=$POSTGRES_USER
 export PGPASSWORD=$POSTGRES_PASS
 
 echo "=> ${POSTGRES_SERVICE_NAME}: Restore database from \$1"
-tar -xzvf \$1
-output="\$(echo \$1 | awk -F'.tar.gz' '{print \$1".sql"}')"
-if psql < \$output ;then
+if ${RESTORE_CMD} ;then
     echo "${POSTGRES_SERVICE_NAME}: Restore succeeded"
 else
     echo "${POSTGRES_SERVICE_NAME}: Restore failed"
 fi
-rm -Rf \$output
 EOF
 chmod +x /$restore_script_name
 
-- 
GitLab