Database Backups with Docker¶
The database has to be running to create/restore a backup. These examples show local examples. If you want to use it on a remote server, remove -f dev.yml
from each example.
Running Backups¶
Run the app with docker-compose -f dev.yml up.
To create a backup, run:
docker-compose -f dev.yml run postgres backup
To list backups, run:
docker-compose -f dev.yml run postgres list-backups
To restore a backup, run:
docker-compose -f dev.yml run postgres restore filename.sql
Where <containerId> is the ID of the Postgres container. To get it, run:
docker ps
To copy the files from the running Postgres container to the host system:
docker cp <containerId>:/backups /host/path/target
Restoring From Backups¶
To restore the production database to a local PostgreSQL database:
createdb NAME_OF_DATABASE
psql NAME_OF_DATABASE < NAME_OF_BACKUP_FILE