============================
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 local.yml`` from each example.

Running Backups
================

Run the app with `docker-compose -f local.yml up`.

To create a backup, run::

    docker-compose -f local.yml run postgres backup


To list backups, run::

    docker-compose -f local.yml run postgres list-backups


To restore a backup, run::

    docker-compose -f local.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