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/appname
rota
Agora, simplesmente por
$bundle exec rake db:reset_to_backup
teremos um novo começo de nosso banco de dados de desenvolvimento.