aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/lib/active_record/railtie.rb4
-rw-r--r--railties/test/application/initializers/active_record_test.rb19
2 files changed, 23 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/railtie.rb b/activerecord/lib/active_record/railtie.rb
index 96dc258288..13b7c6e214 100644
--- a/activerecord/lib/active_record/railtie.rb
+++ b/activerecord/lib/active_record/railtie.rb
@@ -72,9 +72,13 @@ module ActiveRecord
# and then establishes the connection.
initializer "active_record.initialize_database" do |app|
ActiveSupport.on_load(:active_record) do
+ db_connection_type = "DATABASE_URL"
unless ENV['DATABASE_URL']
+ db_connection_type = "database.yml"
self.configurations = app.config.database_configuration
end
+ Rails.logger.info "Connecting to database specified by #{db_connection_type}"
+
establish_connection
end
end
diff --git a/railties/test/application/initializers/active_record_test.rb b/railties/test/application/initializers/active_record_test.rb
index 4a0b8fd56a..edf78a8a0a 100644
--- a/railties/test/application/initializers/active_record_test.rb
+++ b/railties/test/application/initializers/active_record_test.rb
@@ -39,5 +39,24 @@ module ApplicationTests
# clean up
FileUtils.rm("#{app_path}/#{database_path}")
end
+
+ test "DATABASE_URL env var takes precedence over config/database.yml" do
+ database_path = "/db/foo.sqlite3"
+ ENV['DATABASE_URL'] = "sqlite3://#{database_path}"
+ simple_controller
+
+ get '/foo'
+ assert File.read("#{app_path}/log/production.log").include?("DATABASE_URL")
+
+ # clean up
+ FileUtils.rm("#{app_path}/#{database_path}")
+ end
+
+ test "logs the use of config/database.yml" do
+ simple_controller
+
+ get '/foo'
+ assert File.read("#{app_path}/log/production.log").include?("database.yml")
+ end
end
end