Remove deprecated access to connection specification using a string acessor.

Now all strings will be handled as a URL.
上级 a939506f
* Remove deprecated access to connection specification using a string acessor.
Now all strings will be handled as a URL.
*Rafael Mendonça França*
* Change the default `null` value for `timestamps` to `false`.
*Rafael Mendonça França*
......
require 'uri'
require 'active_support/core_ext/string/filters'
module ActiveRecord
module ConnectionAdapters
......@@ -210,30 +209,12 @@ def resolve_connection(spec)
when Symbol
resolve_symbol_connection spec
when String
resolve_string_connection spec
resolve_url_connection spec
when Hash
resolve_hash_connection spec
end
end
def resolve_string_connection(spec)
# Rails has historically accepted a string to mean either
# an environment key or a URL spec, so we have deprecated
# this ambiguous behaviour and in the future this function
# can be removed in favor of resolve_url_connection.
if configurations.key?(spec) || spec !~ /:/
ActiveSupport::Deprecation.warn(<<-MSG.squish)
Passing a string to ActiveRecord::Base.establish_connection for a
configuration lookup is deprecated, please pass a symbol
(#{spec.to_sym.inspect}) instead.
MSG
resolve_symbol_connection(spec)
else
resolve_url_connection(spec)
end
end
# Takes the environment such as +:production+ or +:development+.
# This requires that the @configurations was initialized with a key that
# matches.
......
......@@ -51,34 +51,6 @@ def test_resolver_with_database_uri_and_current_env_symbol_key_and_rack_env
assert_equal expected, actual
end
def test_resolver_with_database_uri_and_and_current_env_string_key
ENV['DATABASE_URL'] = "postgres://localhost/foo"
config = { "default_env" => { "adapter" => "not_postgres", "database" => "not_foo" } }
actual = assert_deprecated { resolve_spec("default_env", config) }
expected = { "adapter"=>"postgresql", "database"=>"foo", "host"=>"localhost" }
assert_equal expected, actual
end
def test_resolver_with_database_uri_and_and_current_env_string_key_and_rails_env
ENV['DATABASE_URL'] = "postgres://localhost/foo"
ENV['RAILS_ENV'] = "foo"
config = { "not_production" => {"adapter" => "not_postgres", "database" => "not_foo" } }
actual = assert_deprecated { resolve_spec("foo", config) }
expected = { "adapter" => "postgresql", "database" => "foo", "host" => "localhost" }
assert_equal expected, actual
end
def test_resolver_with_database_uri_and_and_current_env_string_key_and_rack_env
ENV['DATABASE_URL'] = "postgres://localhost/foo"
ENV['RACK_ENV'] = "foo"
config = { "not_production" => {"adapter" => "not_postgres", "database" => "not_foo" } }
actual = assert_deprecated { resolve_spec("foo", config) }
expected = { "adapter" => "postgresql", "database" => "foo", "host" => "localhost" }
assert_equal expected, actual
end
def test_resolver_with_database_uri_and_known_key
ENV['DATABASE_URL'] = "postgres://localhost/foo"
config = { "production" => { "adapter" => "not_postgres", "database" => "not_foo", "host" => "localhost" } }
......@@ -95,16 +67,6 @@ def test_resolver_with_database_uri_and_unknown_symbol_key
end
end
def test_resolver_with_database_uri_and_unknown_string_key
ENV['DATABASE_URL'] = "postgres://localhost/foo"
config = { "not_production" => { "adapter" => "not_postgres", "database" => "not_foo" } }
assert_deprecated do
assert_raises AdapterNotSpecified do
resolve_spec("production", config)
end
end
end
def test_resolver_with_database_uri_and_supplied_url
ENV['DATABASE_URL'] = "not-postgres://not-localhost/not_foo"
config = { "production" => { "adapter" => "also_not_postgres", "database" => "also_not_foo" } }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册