Skip to content

Commit

Permalink
Don't define a default primary key in the schema dumper.
Browse files Browse the repository at this point in the history
[#1908 state:committed]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
  • Loading branch information
tristandunn authored and jeremy committed Aug 9, 2009
1 parent a25296a commit 9aa9bad
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
3 changes: 1 addition & 2 deletions activerecord/lib/active_record/schema_dumper.rb
Expand Up @@ -84,7 +84,6 @@ def table(table, stream)
elsif @connection.respond_to?(:primary_key)
pk = @connection.primary_key(table)
end
pk ||= 'id'

tbl.print " create_table #{table.inspect}"
if columns.detect { |c| c.name == pk }
Expand Down Expand Up @@ -180,4 +179,4 @@ def indexes(table, stream)
end
end
end
end
end
8 changes: 8 additions & 0 deletions activerecord/test/cases/schema_dumper_test.rb
Expand Up @@ -190,4 +190,12 @@ def test_schema_dump_includes_decimal_options
output = stream.string
assert_match %r{:precision => 3,[[:space:]]+:scale => 2,[[:space:]]+:default => 2.78}, output
end

def test_schema_dump_keeps_id_column_when_id_is_false_and_id_column_added
output = standard_dump
match = output.match(%r{create_table "goofy_string_id"(.*)do.*\n(.*)\n})
assert_not_nil(match, "goofy_string_id table not found")
assert_match %r(:id => false), match[1], "no table id not preserved"
assert_match %r{t.string[[:space:]]+"id",[[:space:]]+:null => false$}, match[2], "non-primary key id column not preserved"
end
end

0 comments on commit 9aa9bad

Please sign in to comment.