aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/migration
diff options
context:
space:
mode:
authorGeorge Millo <georgejulianmillo@gmail.com>2016-02-11 11:25:16 -0700
committerGeorge Millo <georgejulianmillo@gmail.com>2016-02-15 16:04:34 -0700
commitaedde2a33d23252053d4ba6ebdf5f0b2d000aa4b (patch)
treef91d7a62fd371c5932c48e47d6827815873cad50 /activerecord/test/cases/migration
parent156c2cb571af8c2049e61c50232084a9351f428b (diff)
downloadrails-aedde2a33d23252053d4ba6ebdf5f0b2d000aa4b.tar.gz
rails-aedde2a33d23252053d4ba6ebdf5f0b2d000aa4b.tar.bz2
rails-aedde2a33d23252053d4ba6ebdf5f0b2d000aa4b.zip
Let t.foreign_key use the same `to_table` twice
Previously if you used `t.foreign_key` twice within the same `create_table` block using the same `to_table`, all statements except the final one would fail silently. For example, the following code: def change create_table :flights do |t| t.integer :from_id, index: true, null: false t.integer :to_id, index: true, null: false t.foreign_key :airports, column: :from_id t.foreign_key :airports, column: :to_id end end Would only create one foreign key, on the column `from_id`. This commit allows multiple foreign keys to the same table to be created within one `create_table` block.
Diffstat (limited to 'activerecord/test/cases/migration')
-rw-r--r--activerecord/test/cases/migration/references_foreign_key_test.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/activerecord/test/cases/migration/references_foreign_key_test.rb b/activerecord/test/cases/migration/references_foreign_key_test.rb
index b01415afb2..c701eb312f 100644
--- a/activerecord/test/cases/migration/references_foreign_key_test.rb
+++ b/activerecord/test/cases/migration/references_foreign_key_test.rb
@@ -144,6 +144,26 @@ module ActiveRecord
@connection.drop_table "testing", if_exists: true
end
end
+
+ test "multiple foreign keys can be added to the same table" do
+ @connection.create_table :testings do |t|
+ t.integer :col_1
+ t.integer :col_2
+
+ t.foreign_key :testing_parents, column: :col_1
+ t.foreign_key :testing_parents, column: :col_2
+ end
+
+ fks = @connection.foreign_keys("testings")
+
+ assert_equal fks.length, 2
+ assert_equal "testings", fks[0].from_table
+ assert_equal "testing_parents", fks[0].to_table
+ assert_equal "col_1", fks[0].column
+ assert_equal "testings", fks[1].from_table
+ assert_equal "testing_parents", fks[1].to_table
+ assert_equal "col_2", fks[1].column
+ end
end
end
end