aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2018-09-25 18:05:36 -0400
committerGitHub <noreply@github.com>2018-09-25 18:05:36 -0400
commiteb8df3f7b19e6a7149c23eee73e6b197ba8b330e (patch)
tree289979ecfc1bfb3ae165421520c899471cdcad77 /activerecord
parent05a66686f18000a1bbc35a92fe63e18218b829a5 (diff)
parent63c4e9765b53ae1f8b4674c45012295f873a40be (diff)
downloadrails-eb8df3f7b19e6a7149c23eee73e6b197ba8b330e.tar.gz
rails-eb8df3f7b19e6a7149c23eee73e6b197ba8b330e.tar.bz2
rails-eb8df3f7b19e6a7149c23eee73e6b197ba8b330e.zip
Merge pull request #33968 from gmcgibbon/stringify_db_configurations
Stringify database configurations
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG.md4
-rw-r--r--activerecord/lib/active_record/database_configurations.rb4
-rw-r--r--activerecord/test/cases/connection_adapters/connection_handler_test.rb24
3 files changed, 30 insertions, 2 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index cfc5647969..0aec999aba 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Allow `ActiveRecord::Base.configurations=` to be set with a symbolized hash.
+
+ *Gannon McGibbon*
+
* Don't update counter cache unless the record is actually saved.
Fixes #31493, #33113, #33117.
diff --git a/activerecord/lib/active_record/database_configurations.rb b/activerecord/lib/active_record/database_configurations.rb
index 9ff63c6e10..fa1589511e 100644
--- a/activerecord/lib/active_record/database_configurations.rb
+++ b/activerecord/lib/active_record/database_configurations.rb
@@ -104,7 +104,7 @@ module ActiveRecord
return configs.configurations if configs.is_a?(DatabaseConfigurations)
build_db_config = configs.each_pair.flat_map do |env_name, config|
- walk_configs(env_name, "primary", config)
+ walk_configs(env_name.to_s, "primary", config)
end.compact
if url = ENV["DATABASE_URL"]
@@ -119,7 +119,7 @@ module ActiveRecord
when String
build_db_config_from_string(env_name, spec_name, config)
when Hash
- build_db_config_from_hash(env_name, spec_name, config)
+ build_db_config_from_hash(env_name, spec_name, config.stringify_keys)
end
end
diff --git a/activerecord/test/cases/connection_adapters/connection_handler_test.rb b/activerecord/test/cases/connection_adapters/connection_handler_test.rb
index 8c204a2692..6e11b4bb87 100644
--- a/activerecord/test/cases/connection_adapters/connection_handler_test.rb
+++ b/activerecord/test/cases/connection_adapters/connection_handler_test.rb
@@ -151,6 +151,30 @@ module ActiveRecord
ActiveRecord::Base.configurations = @prev_configs
end
+ def test_symbolized_configurations_assignment
+ @prev_configs = ActiveRecord::Base.configurations
+ config = {
+ development: {
+ primary: {
+ adapter: "sqlite3",
+ database: "db/development.sqlite3",
+ },
+ },
+ test: {
+ primary: {
+ adapter: "sqlite3",
+ database: "db/test.sqlite3",
+ },
+ },
+ }
+ ActiveRecord::Base.configurations = config
+ ActiveRecord::Base.configurations.configs_for.each do |config|
+ assert_instance_of ActiveRecord::DatabaseConfigurations::HashConfig, config
+ end
+ ensure
+ ActiveRecord::Base.configurations = @prev_configs
+ end
+
def test_retrieve_connection
assert @handler.retrieve_connection(@spec_name)
end