Kuickr

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_target is 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_restore may exit non-zero on benign warnings (e.g. missing roles); that's logged, not fatal. dropdb/createdb failures are fatal.
  • Dumps are saved under tmp/dumps/ on the Conductor host; the path is shown on the pull's page.
K Pull a database
8 / 10