Perry Smith
2007-Jul-14 13:12 UTC
:primary_key in create_table with postgresql seems broken
My model has:
class CreateSamples < ActiveRecord::Migration
def self.up
create_table :samples, :primary_key => :other_id do |t|
t.column :name, :string
end
end
def self.down
drop_table :samples
end
end
my unit test has:
require File.dirname(__FILE__) + ''/../test_helper''
class SampleTest < Test::Unit::TestCase
# Replace this with your real tests.
def test_save
sample = Sample.new
sample.save
end
end
It fails.
If I get into script/console, the "keys" include the primary key but I
believe it should not:
>> sample = Sample.new
sample = Sample.new
=> #<Sample other_id: nil, name: nil>>> puts sample.attributes.keys
puts sample.attributes.keys
name
other_id
=> nil
The error from the test is:
1) Error:
test_save(SampleTest):
ActiveRecord::StatementInvalid: PGError: ERROR: null value in column
"other_id" violates not-null constraint
: INSERT INTO samples ("name", "other_id") VALUES(NULL,
NULL)
/Users/pedz/rails-projects/pk/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:135:in
`log''
/Users/pedz/rails-projects/pk/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:160:in
`execute''
Notice that other_id is being specified in the insert instead of just
letting it default to the auto sequence.
Is this going to be a problem in the postgresql adapter? I''d like to
track this down but so far, I''m not getting anywhere.
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---