Skip to content

Instantly share code, notes, and snippets.

@sowenjub
Created June 19, 2011 07:29
Show Gist options
  • Star 16 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save sowenjub/1033876 to your computer and use it in GitHub Desktop.
Save sowenjub/1033876 to your computer and use it in GitHub Desktop.
Quickly dump your heroku production database and load it locally
#!/bin/bash
# This script does the following:
# 1/ capture and download the latest backup
# 2/ load it to your local database
# 3/ run your app and open Safari
# Just replace any uppercase string with your own data
#
# CAPTURE
#
cd YOUR_LOCAL_BACKUP_FOLDER
heroku pgbackups:capture --expire --app YOUR_APP_NAME
file_path="db_$(date +%Y_%m_%d-%H_%M_%S).dump"
curl `heroku pgbackups:url --app YOUR_APP_NAME` > $file_path
#
# LOAD
#
pg_restore --verbose --clean --no-acl --no-owner -h localhost -u YOUR_LOCAL_DB_USERNAME -d YOUR_LOCAL_DB_NAME $file_path
cd YOUR_LOCAL_APP # for me something like ~/Sites/app_name
#
# RUN
#
# Tell to launch Safari after 10 seconds, which should be enough to load the server
eval "sleep 10; open -a Safari http://localhost:3001/" &
# Run your app. I use an environment with caching which is closer to the production environment than my standard dev environment.
bundle exec thin start -e dev_with_caching -p 3001
@tataihono
Copy link

cheers

@stefanneculai
Copy link

It should be -U instead of -u.

@sagzy
Copy link

sagzy commented Apr 22, 2015

Great help. Heroku doc was incomplete. Thanks !

@ustroetz
Copy link

This is outdated since heroku doesn't have the backup addon anymore.

 !    Please add the pgbackups addon first via:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment