mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Deprecate table names containing dots
Dots have special meaning in most backends (e.g. everything except SQLite3), as well as most methods that work with table or column names. This isn't something that we ever explicitly supported, but there's at least one case of somebody using this (see #24367), so we'll go through a deprecation cycle as normal.
This commit is contained in:
parent
04ac5655be
commit
7b82e1c77b
2 changed files with 15 additions and 0 deletions
|
@ -144,6 +144,13 @@ module ActiveRecord
|
|||
def table_name=(value)
|
||||
value = value && value.to_s
|
||||
|
||||
if value && value.include?(".")
|
||||
# When this deprecation warning is removed, revert commit 04ac5655be91f49cd4dfe2838df96213502fb274
|
||||
ActiveSupport::Deprecation.warn(
|
||||
'Support for table names containing "." is deprecated and will be removed in Rails 5.1.'
|
||||
)
|
||||
end
|
||||
|
||||
if defined?(@table_name)
|
||||
return if value == @table_name
|
||||
reset_column_information if connected?
|
||||
|
|
|
@ -1531,4 +1531,12 @@ class BasicsTest < ActiveRecord::TestCase
|
|||
assert Developer.new.respond_to?(:last_name=)
|
||||
assert Developer.new.respond_to?(:last_name?)
|
||||
end
|
||||
|
||||
test "table names containing a dot are deprecated" do
|
||||
assert_deprecated do
|
||||
Class.new(ActiveRecord::Base) do
|
||||
self.table_name = "foo.bar"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue