diff --git a/lib/tasks/api_log.rake b/lib/tasks/api_log.rake index 2f02f87f4..5e7c6bbfd 100644 --- a/lib/tasks/api_log.rake +++ b/lib/tasks/api_log.rake @@ -1,11 +1,33 @@ namespace :api_log do - namespace :schema do - # desc 'Dump additional database schema' - task :dump => [:environment] do - filename = "#{Rails.root}/db/api_log_schema.rb" - File.open(filename, 'w:utf-8') do |file| - ActiveRecord::Base.establish_connection("api_log_#{Rails.env}") - ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file) + namespace :test do + namespace :schema do + # desc 'Dump additional database schema' + task :dump => [:environment] do + filename = "#{Rails.root}/db/api_log_schema.rb" + File.open(filename, 'w:utf-8') do |file| + ActiveRecord::Base.establish_connection(:api_log_development) + ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file) + end + end + + # desc 'Purge and load foo_test schema' + task :load => [:environment] do + # like db:test:purge + abcs = ActiveRecord::Base.configurations + ActiveRecord::Base.clear_all_connections! + + ActiveRecord::Base.connection.drop_database("api_log_test") + ActiveRecord::Base.connection.create_database("api_log_test", abcs["api_log_test"]) + + # like db:test:load_schema + ActiveRecord::Base.establish_connection("api_log_test") + ActiveRecord::Schema.verbose = false + load("#{Rails.root}/db/api_log_schema.rb") + end + + task :reload => [:environment] do + Rake::Task['api_log:test:schema:dump'].invoke + Rake::Task['api_log:test:schema:load'].invoke end end end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 9ebf88da9..79bef405c 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -32,7 +32,10 @@ RSpec.configure do |config| config.use_transactional_fixtures = false config.before(:suite) do - DatabaseCleaner.clean_with(:truncation) + ActiveRecord::Base.establish_connection :api_log_test + DatabaseCleaner.strategy = :deletion + ActiveRecord::Base.establish_connection :test + DatabaseCleaner.strategy = :truncation end config.before(:each) do @@ -48,10 +51,18 @@ RSpec.configure do |config| end config.before(:each) do + ActiveRecord::Base.establish_connection :api_log_test + DatabaseCleaner.start + + ActiveRecord::Base.establish_connection :test DatabaseCleaner.start end config.after(:each) do + ActiveRecord::Base.establish_connection :api_log_test + DatabaseCleaner.clean + + ActiveRecord::Base.establish_connection :test DatabaseCleaner.clean end