#!/bin/bash set -eu DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" . $DIR/../help.sh postgres_help() { echo "./run backup : Lancer la sauvegarde d'une base de données" echo "./run restore : Restore une sauvegarde" } postgres_backup() { script_env backup_folder_create POSTGRES_BACKUP_FILE_DEFAULT=backups/`date +%Y%m%d_%H%M%S`_$POSTGRES_DB.sql POSTGRES_BACKUP_FILE=${POSTGRES_BACKUP_FILE:-$POSTGRES_BACKUP_FILE_DEFAULT} echo "🏁 Start backup PostgreSQL database '$POSTGRES_DB' in '$POSTGRES_BACKUP_FILE'" docker exec -i $POSTGRES_CONTAINER_NAME pg_dump $POSTGRES_DB -U $POSTGRES_USER > $POSTGRES_BACKUP_FILE } postgres_restore() { script_env echo "🏁 Start restore PostgreSQL database '$POSTGRES_DB' from '$POSTGRES_BACKUP_FILE'" docker restart $POSTGRES_CONTAINER_NAME docker exec $POSTGRES_CONTAINER_NAME psql template1 -U $POSTGRES_USER -c "DROP DATABASE $POSTGRES_DB" docker exec $POSTGRES_CONTAINER_NAME psql template1 -U $POSTGRES_USER -c "CREATE DATABASE $POSTGRES_DB with owner $POSTGRES_USER" cat $POSTGRES_BACKUP_FILE | docker exec -i $POSTGRES_CONTAINER_NAME psql -U $POSTGRES_USER -d $POSTGRES_DB } if [ $# -ge 1 ]; then if [ "${1}" == "backup" ]; then script_start postgres_backup script_end elif [ "${1}" == "restore" ]; then script_start postgres_restore script_end elif [ "${1}" != "--only-source" ]; then postgres_help fi else postgres_help fi