Skip to content

Instantly share code, notes, and snippets.

@danhixon
Created August 3, 2012 22:06
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 danhixon/3251985 to your computer and use it in GitHub Desktop.
Save danhixon/3251985 to your computer and use it in GitHub Desktop.
Migrate Heroku Shared Database to Heroku Postgres Dev Database
#
# If you've got a bunch of heroku apps running with
# shared databases and you want to migrate them to
# heroku postgres dev databases you can use this
# ruby script.
#
# USAGE:
# ruby shared_to_dev.rb app_name
#
app_name = ARGV[0]
database_name = ARGV[1] # optional param
if !database_name
puts "adding a new postgresql database..."
response = `heroku addons:add heroku-postgresql:dev -a #{app_name}`
database_name = response.match(/Attached as (.+)/)[1]
puts "new database created: #{database_name}"
end
puts "adding pgbackups add on..."
puts `heroku addons:add pgbackups -a #{app_name}`
puts "putting #{app_name} into maintenance mode"
puts `heroku maintenance:on -a #{app_name}`
puts "backing up database..."
puts `heroku pgbackups:capture --expire -a #{app_name}`
puts "restoring backup to #{database_name}..."
puts `heroku pgbackups:restore #{database_name} -a #{app_name} --confirm #{app_name}`
puts "promoting #{database_name}..."
puts `heroku pg:promote #{database_name} -a #{app_name}`
puts "taking #{app_name} out of maintenance mode..."
puts `heroku maintenance:off -a #{app_name}`
puts "\n\nOK OK OK! Check everything out. then run:"
puts "heroku addons:remove shared-database -a #{app_name}\n"
@invisiblefunnel
Copy link

Wish I had seen your tweet about this. Would have save me a bit of time.

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