Forum: Ruby on Rails [retry] fixture_references: "Mysql::Error #HY000"? (fwd)

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
457cf540784a12ba2f30e06565a2c189?d=identicon&s=25 Hugh Sasse (Guest)
on 2007-07-12 17:45
(Received via mailing list)
I'm resending this with additional information, as I've had no
response.  I've been trying to use the fixture_references plugin,
and I seem to be getting lots of:


  1) Error:
test_truth(DeviceTest):
ActiveRecord::StatementInvalid: Mysql::Error: #HY000Field
'description_id' doesn
't have a default value: INSERT INTO devices (`id`) VALUES (2)
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection
_adapters/abstract_adapter.rb:128:in `log'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection
_adapters/mysql_adapter.rb:243:in `execute'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:290:in `insert_fixtures'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:289:in `each'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:289:in `insert_fixtures'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:257:in `create_fixtures_without_references'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:257:in `each'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:257:in `create_fixtures_without_references'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection
_adapters/abstract/database_statements.rb:59:in `transaction'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:255:in `create_fixtures_without_references'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:86
7:in `silence'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:248:in `create_fixtures_without_references'
    /home/hgs/aeg_intranet/csestore/config/../vendor/plugins/fixture_references/
lib/fixture_references.rb:92:in `create_fixtures'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:593:in `load_fixtures'
    /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.r
b:538:in `setup'


But AFAICS the fixture data looks OK

# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
<%
  fixtures :devices, :descriptions
%>
olympus400_in:
  id: 1
  description_id: <%= descriptions(:C_400, 'id') %>
  serialno: 238553902
  barcode: 16301
  state: 'in stock'
  categorypath: 'Still Picture Camera'
  lock_version: 1


and I tried the old form
  description_id: <%= descriptions(:C_400)['id'] %>

but get the same error.  The data does exist in the descriptions table:

C_400:
  :text: Olympus C-400 Zoom
  :id: 7
  :picture: ""

What is puzzling me is that 1) I don't assume a default, 2) MySQL error
numbers are normally purely numeric, and google maps this HY000 to many
things..

Any idea what I should be looking at for this, please?  This is
rails 1.2.3 under cygwin.

Since posting this the first time I've tried to find out how to get
more information out of the system using the script/console, to no
avail.

The test database has no data in it prior to the tests, and without
assuming Active Record is happy, I don't know how to query it once the
fixtures are in place (if their insertion succeeded).


        Thank you,
        Hugh
This topic is locked and can not be replied to.