diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2015-06-25 16:52:33 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2015-09-20 06:43:00 +0900 |
commit | ab12859947a1faeac3df93ebeb54efc572cf1803 (patch) | |
tree | d4484375825a2f7262e2b44ed99bb67988d73356 /activerecord/test/cases/primary_keys_test.rb | |
parent | 2e7415bf71b017180d92ac6fdcafe215cc9eddb6 (diff) | |
download | rails-ab12859947a1faeac3df93ebeb54efc572cf1803.tar.gz rails-ab12859947a1faeac3df93ebeb54efc572cf1803.tar.bz2 rails-ab12859947a1faeac3df93ebeb54efc572cf1803.zip |
Correctly dump composite primary key
Example:
create_table :barcodes, primary_key: ["region", "code"] do |t|
t.string :region
t.integer :code
end
Diffstat (limited to 'activerecord/test/cases/primary_keys_test.rb')
-rw-r--r-- | activerecord/test/cases/primary_keys_test.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/activerecord/test/cases/primary_keys_test.rb b/activerecord/test/cases/primary_keys_test.rb index 0745a37ee9..66c28c4958 100644 --- a/activerecord/test/cases/primary_keys_test.rb +++ b/activerecord/test/cases/primary_keys_test.rb @@ -241,6 +241,33 @@ class PrimaryKeyAnyTypeTest < ActiveRecord::TestCase end end +class CompositePrimaryKeyTest < ActiveRecord::TestCase + include SchemaDumpingHelper + + self.use_transactional_tests = false + + def setup + @connection = ActiveRecord::Base.connection + @connection.create_table(:barcodes, primary_key: ["region", "code"], force: true) do |t| + t.string :region + t.integer :code + end + end + + def teardown + @connection.drop_table(:barcodes, if_exists: true) + end + + def test_composite_primary_key + assert_equal ["region", "code"], @connection.primary_keys("barcodes") + end + + def test_collectly_dump_composite_primary_key + schema = dump_table_schema "barcodes" + assert_match %r{create_table "barcodes", primary_key: \["region", "code"\]}, schema + end +end + if current_adapter?(:MysqlAdapter, :Mysql2Adapter) class PrimaryKeyWithAnsiQuotesTest < ActiveRecord::TestCase self.use_transactional_tests = false |