Skip to content

Instantly share code, notes, and snippets.

@gma
Created February 14, 2014 10:37
Show Gist options
  • Save gma/8999026 to your computer and use it in GitHub Desktop.
Save gma/8999026 to your computer and use it in GitHub Desktop.
Copy production backup to staging (Heroku)
#!/bin/bash
PRODUCTION_REMOTE="production"
STAGING_REMOTE="staging"
STAGING_DATABASE_NAME="HEROKU_POSTGRESQL_COBALT"
## Functions
reset_staging_database()
{
heroku pg:reset $STAGING_DATABASE_NAME -r $STAGING_REMOTE
}
latest_backup()
{
heroku pgbackups -r $PRODUCTION_REMOTE | tail -n 1 | cut -f 1 -d ' '
}
latest_backup_url()
{
heroku pgbackups:url $(latest_backup) -r $PRODUCTION_REMOTE
}
restore_production_to_staging()
{
local url="$(latest_backup_url)"
heroku pgbackups:restore $STAGING_DATABASE_NAME "$url" -r $STAGING_REMOTE
}
## Main program
set -x
reset_staging_database
restore_production_to_staging
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment