Useful Rake task to restart database and import SQL dump
Very often, when testing new migrations on development env, I want the feeling of a fresh new reset in my DB plus the state of the most recent backup of the production database.
This is a rake task that accomplishes both those steps in an easy manner:
namespace :db do
task reset_to_backup: :environment do
Rake::Task['db:drop'].invoke
Rake::Task['db:create'].invoke
Rake::Task['db:migrate'].invoke
Rake::Task['db:test:prepare'].invoke
sh 'psql -h localhost -d appname_development -U pgusername -f ../backups/appname/appname_production.sql'
end
end
Note: I place my backups out of the project's folder. Hence the ../backups/appname
route
Now, simply by
$bundle exec rake db:reset_to_backup
we'll have a fresh new start of our development database.
Written by toni
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Ruby
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#