From c036e13ef45a498503c13ab9445f3a5add9fd3ff Mon Sep 17 00:00:00 2001 From: Elliott Shugerman Date: Sun, 1 Dec 2019 21:49:48 -0700 Subject: [PATCH] readme --- README.md | 45 ++++++++++++++++++++++----------------------- src/restore.sh | 1 + 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 8930a2c..b9b18bc 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,5 @@ # Introduction -This project provides Docker images to periodically backup a PostgreSQL database to AWS S3, and to restore from the backup as needed. - -# Credit where due -This repository is a fork and re-structuring of schickling's [postgres-backup-s3](https://github.com/schickling/dockerfiles/tree/master/postgres-backup-s3) and [postgres-restore-s3](https://github.com/schickling/dockerfiles/tree/master/postgres-restore-s3). - -fork goals: - - [x] dedicated repository - - [x] automated builds - - [x] support multiple PostgreSQL versions - - [x] merge backup and restore images - - [x] support encrypted (password-protected) backups - - [x] option to restore from specific backup by timestamp - -other changes: - - uses `pg_dump`'s `custom` format (see [docs](https://www.postgresql.org/docs/10/app-pgdump.html)) - - backup blobs and all schemas by default - - recreate all database objects on restore - - some env vars renamed - - only scheduled backups supported, not ad-hoc - - filter backups on S3 by database name - +This project provides Docker images to periodically back up a PostgreSQL database to AWS S3, and to restore from the backup as needed. # Usage ## Backup @@ -47,17 +27,36 @@ pg_backup_s3: - Images are tagged by the major PostgreSQL version they support: `9`, `10`, `11`, or `12`. - The `SCHEDULE` variable determines backup frequency. See go-cron schedules documentation [here](http://godoc.org/github.com/robfig/cron#hdr-Predefined_schedules). - If `PASSPHRASE` is provided, the backup will be encrypted using GPG. +- Run `docker exec sh backup.sh` to trigger a backup ad-hoc ## Restore > **WARNING:** DATA LOSS! All database objects will be dropped and re-created. - ### ... from latest backup ```sh docker exec sh restore.sh ``` > **NOTE:** If your bucket has more than a 1000 files, the latest may not be restored -- only one S3 `ls` command is used - ### ... from specific backup ```sh docker exec sh restore.sh ``` + +# It's a fork! +This project is a fork and re-structuring of schickling's [postgres-backup-s3](https://github.com/schickling/dockerfiles/tree/master/postgres-backup-s3) and [postgres-restore-s3](https://github.com/schickling/dockerfiles/tree/master/postgres-restore-s3). + +## Fork goals + - [x] dedicated repository + - [x] automated builds + - [x] support multiple PostgreSQL versions + - [x] merge backup and restore images + - [x] support encrypted (password-protected) backups + - [x] option to restore from specific backup by timestamp + +## Other changes + - uses `pg_dump`'s `custom` format (see [docs](https://www.postgresql.org/docs/10/app-pgdump.html)) + - backup blobs and all schemas by default + - drop and re-create all database objects on restore + - some env vars renamed or removed + - `SCHEDULE` env var is required (but backups can still be triggered ad-hoc) + - filter backups on S3 by database name + diff --git a/src/restore.sh b/src/restore.sh index baa4ff1..4658cd4 100644 --- a/src/restore.sh +++ b/src/restore.sh @@ -24,6 +24,7 @@ if [ -z "$POSTGRES_DATABASE" ]; then fi if [ -z "$POSTGRES_HOST" ]; then + # TODO: what is this? if [ -n "$POSTGRES_PORT_5432_TCP_ADDR" ]; then POSTGRES_HOST=$POSTGRES_PORT_5432_TCP_ADDR POSTGRES_PORT=$POSTGRES_PORT_5432_TCP_PORT