Skip to content
Snippets Groups Projects
Commit 9beb7d7a authored by Michael Hollister's avatar Michael Hollister
Browse files

Merge branch 'schonert/patch-1' into 'master'

Support multiple databases through POSTGRES_DATABASE

See merge request !1
parents ecb08ff4 739d0295
No related branches found
No related tags found
1 merge request!1Support multiple databases through POSTGRES_DATABASE
...@@ -5,47 +5,54 @@ set -o pipefail ...@@ -5,47 +5,54 @@ set -o pipefail
source ./env.sh source ./env.sh
echo "Creating backup of $POSTGRES_DATABASE database..." OIFS="$IFS"
pg_dump --format=custom \ IFS=','
-h $POSTGRES_HOST \ for DB in $POSTGRES_DATABASE
-p $POSTGRES_PORT \ do
-U $POSTGRES_USER \ IFS="$OIFS"
-d $POSTGRES_DATABASE \
$PGDUMP_EXTRA_OPTS \ echo "Creating backup of $DB database..."
> db.dump pg_dump --format=custom \
-h $POSTGRES_HOST \
timestamp=$(date +"%Y-%m-%dT%H:%M:%S") -p $POSTGRES_PORT \
s3_uri_base="s3://${S3_BUCKET}/${S3_PREFIX}/${POSTGRES_DATABASE}_${timestamp}.dump" -U $POSTGRES_USER \
-d $DB \
if [ -n "$PASSPHRASE" ]; then $PGDUMP_EXTRA_OPTS \
echo "Encrypting backup..." > db.dump
rm -f db.dump.gpg
gpg --symmetric --batch --passphrase "$PASSPHRASE" db.dump timestamp=$(date +"%Y-%m-%dT%H:%M:%S")
rm db.dump s3_uri_base="s3://${S3_BUCKET}/${S3_PREFIX}/${DB}_${timestamp}.dump"
local_file="db.dump.gpg"
s3_uri="${s3_uri_base}.gpg" if [ -n "$PASSPHRASE" ]; then
else echo "Encrypting backup..."
local_file="db.dump" rm -f db.dump.gpg
s3_uri="$s3_uri_base" gpg --symmetric --batch --passphrase "$PASSPHRASE" db.dump
fi rm db.dump
local_file="db.dump.gpg"
echo "Uploading backup to $S3_BUCKET..." s3_uri="${s3_uri_base}.gpg"
aws $aws_args s3 cp "$local_file" "$s3_uri" else
rm "$local_file" local_file="db.dump"
s3_uri="$s3_uri_base"
echo "Backup complete." fi
if [ -n "$BACKUP_KEEP_DAYS" ]; then echo "Uploading backup to $S3_BUCKET..."
sec=$((86400*BACKUP_KEEP_DAYS)) aws $aws_args s3 cp "$local_file" "$s3_uri"
date_from_remove=$(date -d "@$(($(date +%s) - sec))" +%Y-%m-%d) rm "$local_file"
backups_query="Contents[?LastModified<='${date_from_remove} 00:00:00'].{Key: Key}"
echo "Backup complete."
echo "Removing old backups from $S3_BUCKET..."
aws $aws_args s3api list-objects \ if [ -n "$BACKUP_KEEP_DAYS" ]; then
--bucket "${S3_BUCKET}" \ sec=$((86400*BACKUP_KEEP_DAYS))
--prefix "${S3_PREFIX}" \ date_from_remove=$(date -d "@$(($(date +%s) - sec))" +%Y-%m-%d)
--query "${backups_query}" \ backups_query="Contents[?LastModified<='${date_from_remove} 00:00:00'].{Key: Key}"
--output text \
| xargs -n1 -t -I 'KEY' aws $aws_args s3 rm s3://"${S3_BUCKET}"/'KEY' echo "Removing old backups from $S3_BUCKET..."
echo "Removal complete." aws $aws_args s3api list-objects \
fi --bucket "${S3_BUCKET}" \
--prefix "${S3_PREFIX}" \
--query "${backups_query}" \
--output text \
| xargs -n1 -t -I 'KEY' aws $aws_args s3 rm s3://"${S3_BUCKET}"/'KEY'
echo "Removal complete."
fi
done
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment