diff --git a/lib/tasks/db.rake b/lib/tasks/db.rake index d52faa2801865945041415b98024a085e3ebcdc1..e2d90b969e139463e691284b559891e61659c6ce 100644 --- a/lib/tasks/db.rake +++ b/lib/tasks/db.rake @@ -21,13 +21,18 @@ namespace :db do abcs = ActiveRecord::Base.configurations envs = abcs.keys.select{ |k| k.include?("integration") } puts envs.inspect - envs.each do |env| - puts "dropping #{env}..." - `cd "#{Rails.root}" && RAILS_ENV=#{env} bundle exec rake db:drop` - puts "creating #{env}..." - `cd "#{Rails.root}" && RAILS_ENV=#{env} bundle exec rake db:create` - puts "migrating #{env}..." - `cd "#{Rails.root}" && RAILS_ENV=#{env} bundle exec rake db:migrate` + envs.each_with_index do |env, i| + Rails.env = env + Rake::Task.tasks.each{ |task| task.reenable } + + print "\n\n## preparing database for #{env}... " + puts (i == 0) ? "(go get yourself a coffee)" : "(time for another coffee)" + + # do drop, schema:load_if_ruby, structure:load_if_sql, seed + Rake::Task['db:drop'].invoke + Rake::Task['db:setup'].invoke + + puts "db #{ActiveRecord::Base.connection.current_database} done" end end end