48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 |