|
@ -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 |
|
|
## Usage |
|
|
|
|
|
|
|
|
Docker: |
|
|
Docker: |
|
|
```sh |
|
|
```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. |
|
|
|
|
|
|