Tarefa Rake útil para reiniciar o banco de dados e importar o dump SQL

Muitas vezes, ao testar novas migrações no ambiente de desenvolvimento, desejo a sensação de uma nova redefinição em meu banco de dados mais o estado do backup mais recente do banco de dados de produção.

Esta é uma tarefa de rake que realiza ambas as etapas de maneira fácil:

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

Nota: coloco meus backups fora da pasta do projeto. Daí a ../backups/appnamerota

Agora, simplesmente por

$bundle exec rake db:reset_to_backup

teremos um novo começo de nosso banco de dados de desenvolvimento.