aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/model_schema.rb7
-rw-r--r--activerecord/test/cases/base_test.rb8
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