aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/railties
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2011-10-24 05:35:06 -0700
committerXavier Noria <fxn@hashref.com>2011-10-24 05:35:06 -0700
commitb064614ffbb074807cb69b6ea785a5f01643682c (patch)
tree87726cbcd96d59d39c2556c7f905168be5550f2c /activerecord/lib/active_record/railties
parent0e8a4b3e57ad4440cc0e4b3b15330346777cb09c (diff)
parent78de4fcd050b5f2f67a1bf974ba6960b4b017443 (diff)
downloadrails-b064614ffbb074807cb69b6ea785a5f01643682c.tar.gz
rails-b064614ffbb074807cb69b6ea785a5f01643682c.tar.bz2
rails-b064614ffbb074807cb69b6ea785a5f01643682c.zip
Merge pull request #2419 from dmitriy-kiriyenko/drop_test_database_in_development_when_running_rake_db_drop
When running "rake db:drop" also drop test database in development environment
Diffstat (limited to 'activerecord/lib/active_record/railties')
-rw-r--r--activerecord/lib/active_record/railties/databases.rake26
1 files changed, 15 insertions, 11 deletions
diff --git a/activerecord/lib/active_record/railties/databases.rake b/activerecord/lib/active_record/railties/databases.rake
index 4fb19b14ea..705ffe9dd7 100644
--- a/activerecord/lib/active_record/railties/databases.rake
+++ b/activerecord/lib/active_record/railties/databases.rake
@@ -37,11 +37,7 @@ db_namespace = namespace :db do
desc 'Create the database from config/database.yml for the current Rails.env (use db:create:all to create all dbs in the config)'
task :create => :load_config do
- # Make the test database at the same time as the development one, if it exists
- if Rails.env.development? && ActiveRecord::Base.configurations['test']
- create_database(ActiveRecord::Base.configurations['test'])
- end
- create_database(ActiveRecord::Base.configurations[Rails.env])
+ configs_for_environment.each { |config| create_database(config) }
end
def mysql_creation_options(config)
@@ -138,12 +134,7 @@ db_namespace = namespace :db do
desc 'Drops the database for the current Rails.env (use db:drop:all to drop all databases)'
task :drop => :load_config do
- config = ActiveRecord::Base.configurations[Rails.env || 'development']
- begin
- drop_database(config)
- rescue Exception => e
- $stderr.puts "Couldn't drop #{config['database']} : #{e.inspect}"
- end
+ configs_for_environment.each { |config| drop_database_and_rescue(config) }
end
def local_database?(config, &block)
@@ -548,6 +539,19 @@ def drop_database(config)
end
end
+def drop_database_and_rescue(config)
+ begin
+ drop_database(config)
+ rescue Exception => e
+ $stderr.puts "Couldn't drop #{config['database']} : #{e.inspect}"
+ end
+end
+
+def configs_for_environment
+ environments = [Rails.env, ("test" if Rails.env.development?)]
+ ActiveRecord::Base.configurations.values_at(*environments).compact
+end
+
def session_table_name
ActiveRecord::SessionStore::Session.table_name
end