Docker images for postgres extended with management bash scripts.
at main 38 lines 1.0 kB view raw
1#!/usr/bin/env bash 2 3 4### Create a database backup. 5### 6### Usage: 7### $ docker-compose -f <environment>.yml (exec |run --rm) postgres backup 8 9 10set -o errexit 11set -o pipefail 12set -o nounset 13 14 15working_dir="$(dirname ${0})" 16source "${working_dir}/_sourced/constants.sh" 17source "${working_dir}/_sourced/messages.sh" 18 19 20message_welcome "Backing up the '${POSTGRES_DB}' database..." 21 22 23if [[ "${POSTGRES_USER}" == "postgres" ]]; then 24 message_error "Backing up as 'postgres' user is not supported. Assign 'POSTGRES_USER' env with another one and try again." 25 exit 1 26fi 27 28export PGHOST="${POSTGRES_HOST}" 29export PGPORT="${POSTGRES_PORT}" 30export PGUSER="${POSTGRES_USER}" 31export PGPASSWORD="${POSTGRES_PASSWORD}" 32export PGDATABASE="${POSTGRES_DB}" 33 34backup_filename="${BACKUP_FILE_PREFIX}_$(date +'%Y_%m_%dT%H_%M_%S').sql.gz" 35pg_dump | gzip > "${BACKUP_DIR_PATH}/${backup_filename}" 36 37 38message_success "'${POSTGRES_DB}' database backup '${backup_filename}' has been created and placed in '${BACKUP_DIR_PATH}'."