Pull a database
A database pull runs pg_dump on one of your servers over SSH, downloads the dump to the Conductor host via SCP, and (optionally) restores it into a local PostgreSQL database. It's the reproducible version of the manual ssh … pg_dump | scp | pg_restore dance.
Start a pull
Pulls → New pull:
| Field | Meaning |
|---|---|
| Source server | A server with SSH access configured. |
| Env file to source | Optional. Sourced before pg_dump so $DATABASE_URL is set (Hatchbox boxes keep it at /home/deploy/<app>/.asdf-vars). |
| DATABASE_URL variable | The env var holding the connection string (default DATABASE_URL). |
| Restore into local database | Optional. If set, Conductor drops and recreates that local database, then pg_restores into it. Leave blank to only download the dump. |
The pull runs as a background job; its page streams live output over ActionCable.
What it does
1. ssh: pg_dump -Fc --no-owner --no-acl "$DATABASE_URL" -f /tmp/…dump
2. scp: download to <conductor>/tmp/dumps/
3. ssh: rm the remote temp dump
4. (optional) dropdb / createdb / pg_restore → local restore_target
The dump uses the source box's pg_dump, so its client version matches the remote server. Custom format (-Fc) with --no-owner --no-acl keeps the dump portable across roles.
Notes & cautions
-
Restore is destructive. A
restore_targetis dropped and recreated before restore — only set it for a throwaway/dev database. - The Conductor host needs PostgreSQL client tools for the restore step.
-
pg_restoremay exit non-zero on benign warnings (e.g. missing roles); that's logged, not fatal.dropdb/createdbfailures are fatal. - Dumps are saved under
tmp/dumps/on the Conductor host; the path is shown on the pull's page.