Browse Source

Merge pull request #20 from kandoio/update-postgres-restore-s3-readme

update postgres restore s3 readme
pull/22/head
Johannes Schickling 9 years ago
parent
commit
4963054b58
  1. 2
      postgres-restore-s3/Dockerfile
  2. 48
      postgres-restore-s3/README.md
  3. 2
      postgres-restore-s3/install.sh

2
postgres-restore-s3/Dockerfile

@ -1,4 +1,4 @@
FROM alpine:edge
FROM alpine:3.2
MAINTAINER Johannes Schickling "schickling.j@gmail.com"
ADD install.sh install.sh

48
postgres-restore-s3/README.md

@ -1,41 +1,27 @@
# postgres-backup-s3
# postgres-restore-s3
Backup PostgresSQL to S3 (supports periodic backups)
Restore a SQL backup from S3 to PostgresSQL
## Warning
This will potentially put your database in a very bad state or complete destroy your data, be very careful.
## Limitations
This is made to restore a backup made from postgres-backup-s3, if you backup came from somewhere else please check your format.
* Your s3 bucket *must* only contain backups which you wish to restore - it will always grabs the 'latest' based on unix sort with no filtering
* They must be gzip encoded text sql files
* If your bucket has more than a 1000 files the latest may not be restore, only one s3 ls command is made
## Usage
Docker:
```sh
$ docker run -e S3_ACCESS_KEY_ID=key -e S3_SECRET_ACCESS_KEY=secret -e S3_BUCKET=my-bucket -e S3_PREFIX=backup -e POSTGRES_DATABASE=dbname -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_HOST=localhost schickling/postgres-backup-s3
```
Docker Compose:
```yaml
postgres:
image: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
pgbackups3:
image: schickling/postgres-backup-s3
links:
- postgres
environment:
SCHEDULE: '@daily'
S3_REGION: region
S3_ACCESS_KEY_ID: key
S3_SECRET_ACCESS_KEY: secret
S3_BUCKET: my-bucket
S3_PREFIX: backup
POSTGRES_DATABASE: dbname
POSTGRES_USER: user
POSTGRES_PASSWORD: password
$ docker run -e S3_ACCESS_KEY_ID=key -e S3_SECRET_ACCESS_KEY=secret -e S3_BUCKET=my-bucket -e S3_PREFIX=backup -e POSTGRES_DATABASE=dbname -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_HOST=localhost schickling/postgres-restore-s3
```
### Automatic Periodic Backups
You can additionally set the `SCHEDULE` environment variable like `-e SCHEDULE="@daily"` to run the backup automatically.
## Dropping public
More information about the scheduling can be found [here](http://godoc.org/github.com/robfig/cron#hdr-Predefined_schedules).
If you wish to drop the public schema (drop schema public cascade; create schema public) then set the environment variable DROP_PUBLIC=yes. This is useful for situations where you wish to restore a database which currently has data / schemas in it.

2
postgres-restore-s3/install.sh

@ -6,7 +6,7 @@ set -e
apk update
# install pg_dump
apk add 'postgresql>9.5.0'
apk add postgresql
# install s3 tools
apk add python py-pip

Loading…
Cancel
Save