diff options
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/schema_dumper_test.rb | 11 | ||||
-rw-r--r-- | activerecord/test/schema/schema.rb | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/activerecord/test/cases/schema_dumper_test.rb b/activerecord/test/cases/schema_dumper_test.rb index 1c43e3c5b5..95039289c4 100644 --- a/activerecord/test/cases/schema_dumper_test.rb +++ b/activerecord/test/cases/schema_dumper_test.rb @@ -45,7 +45,7 @@ class SchemaDumperTest < ActiveRecord::TestCase next if column_set.empty? lengths = column_set.map do |column| - if match = column.match(/t\.(?:integer|decimal|float|datetime|timestamp|time|date|text|binary|string|boolean)\s+"/) + if match = column.match(/t\.(?:integer|decimal|float|datetime|timestamp|time|date|text|binary|string|boolean|primary_key)\s+"/) match[0].length end end @@ -169,6 +169,13 @@ class SchemaDumperTest < ActiveRecord::TestCase assert_match %r(:primary_key => "movieid"), match[1], "non-standard primary key not preserved" end + def test_mysql_schema_dump_should_honor_primary_keys_limits + output = standard_dump + match = output.match(%r{create_table "primary_key_limit",.*?:id => false\b.*? do (.*?)\bend$}m) + assert_not_nil(match, output) + assert_match %r(t.primary_key\s+"id",\s+:limit => \d+$), match[1], "limit option not found on primary key" + end + if current_adapter?(:MysqlAdapter) def test_schema_dump_should_not_add_default_value_for_mysql_text_field output = standard_dump @@ -211,7 +218,7 @@ class SchemaDumperTest < ActiveRecord::TestCase if current_adapter?(:OracleAdapter) assert_match %r{t.integer\s+"atoms_in_universe",\s+:precision => 38,\s+:scale => 0}, output else - assert_match %r{t.decimal\s+"atoms_in_universe",\s+:precision => 55,\s+:scale => 0}, output + assert_match %r{t.decimal\s+"atoms_in_universe",\s+:limit => 55,\s+:precision => 55,\s+:scale => 0}, output end end diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb index bec4291457..a1932ad16a 100644 --- a/activerecord/test/schema/schema.rb +++ b/activerecord/test/schema/schema.rb @@ -394,6 +394,10 @@ ActiveRecord::Schema.define do t.integer :price end + create_table :primary_key_limit, :force => true, :id => false do |t| + t.primary_key :id, :limit => 8 + end + create_table :projects, :force => true do |t| t.string :name t.string :type |