Permalink
Browse files

Merge pull request #10455 from patricksrobertson/bigserial_id_not_ide…

…ntifying_pk

Add PK constraint on bigserial ID columns on postgres adapter
  • Loading branch information...
1 parent ab62005 commit 086de4315bc309e1a8797832e6256b35028e7673 @tenderlove tenderlove committed May 7, 2013
@@ -360,8 +360,12 @@ class TableDefinition < ActiveRecord::ConnectionAdapters::TableDefinition
# done via the SecureRandom.uuid method and a +before_save+ callback,
# for instance.
def primary_key(name, type = :primary_key, options = {})
- return super unless type == :uuid
- options[:default] = options.fetch(:default, 'uuid_generate_v4()')
+ return super unless type = :primary_key
+
+ if type == :uuid
+ options[:default] = options.fetch(:default, 'uuid_generate_v4()')
+ end
+
options[:primary_key] = true
column name, type, options
end
@@ -216,3 +216,32 @@ def test_primaery_key_method_with_ansi_quotes
end
end
+if current_adapter?(:PostgreSQLAdapter)
+ class PrimaryKeyBigSerialTest < ActiveRecord::TestCase
+ self.use_transactional_fixtures = false
+
+ class Widget < ActiveRecord::Base
+ end
+
+ def setup
+ @con = ActiveRecord::Base.connection
+
+ ActiveRecord::Schema.define do
+ create_table :widgets, id: :bigserial do |t|
+ end
+ end
+ end
+
+ def teardown
+ ActiveRecord::Schema.define do
+ drop_table :widgets
+ end
+ end
+
+ def test_bigserial_primary_key
+ widget = Widget.create!
+
+ assert_not_nil widget.id
+ end
+ end
+end

0 comments on commit 086de43

Please sign in to comment.