aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/migration
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2013-02-23 15:32:18 +0100
committerYves Senn <yves.senn@gmail.com>2013-02-23 15:40:07 +0100
commit2d4e3fecc28c40eef461c1242ebf17384d6e38fb (patch)
tree8ed041c86f9499c97bfb0259390629be2b21ebba /activerecord/test/cases/migration
parentcad397ea2bdeec77792201b9f10cedae6b62163b (diff)
downloadrails-2d4e3fecc28c40eef461c1242ebf17384d6e38fb.tar.gz
rails-2d4e3fecc28c40eef461c1242ebf17384d6e38fb.tar.bz2
rails-2d4e3fecc28c40eef461c1242ebf17384d6e38fb.zip
forwardport #9388 rename/remove column preserves custom PK.
Diffstat (limited to 'activerecord/test/cases/migration')
-rw-r--r--activerecord/test/cases/migration/rename_column_test.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/activerecord/test/cases/migration/rename_column_test.rb b/activerecord/test/cases/migration/rename_column_test.rb
index 88bea2211d..05e93986ef 100644
--- a/activerecord/test/cases/migration/rename_column_test.rb
+++ b/activerecord/test/cases/migration/rename_column_test.rb
@@ -128,7 +128,7 @@ module ActiveRecord
assert_equal 1, connection.indexes('test_models').size
remove_column("test_models", "hat_size")
- # Every database and/or database adapter has their own behavior
+ # Every database and/or database adapter has their own behavior
# if it drops the multi-column index when any of the indexed columns dropped by remove_column.
if current_adapter?(:PostgreSQLAdapter, :OracleAdapter)
assert_equal [], connection.indexes('test_models').map(&:name)
@@ -245,6 +245,20 @@ module ActiveRecord
def test_remove_column_no_second_parameter_raises_exception
assert_raise(ArgumentError) { connection.remove_column("funny") }
end
+
+ def test_removing_and_renaming_column_preserves_custom_primary_key
+ connection.create_table "my_table", primary_key: "my_table_id", force: true do |t|
+ t.integer "col_one"
+ t.string "col_two", limit: 128, null: false
+ end
+
+ remove_column("my_table", "col_two")
+ rename_column("my_table", "col_one", "col_three")
+
+ assert_equal 'my_table_id', connection.primary_key('my_table')
+ ensure
+ connection.drop_table(:my_table) rescue nil
+ end
end
end
end