Skip to content

Instantly share code, notes, and snippets.

@djalmaaraujo
Forked from sowenjub/gist:1033876
Created November 22, 2016 01:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save djalmaaraujo/8cc6bbeb61755bbe76d19ccaf62fff0a to your computer and use it in GitHub Desktop.
Save djalmaaraujo/8cc6bbeb61755bbe76d19ccaf62fff0a 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment