diff options
-rw-r--r-- | activerecord/lib/active_record/model_schema.rb | 7 | ||||
-rw-r--r-- | activerecord/test/cases/base_test.rb | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/model_schema.rb b/activerecord/lib/active_record/model_schema.rb index 52eab952e1..4c836378e0 100644 --- a/activerecord/lib/active_record/model_schema.rb +++ b/activerecord/lib/active_record/model_schema.rb @@ -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? diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index eef2d29d02..24746ea56d 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -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 |