----- Original Message ---- > From: Peter Rabbitson <[email protected]> > > > > When I upgrade to 0.08115: > > > > My::Schema::Customer::account(): Unable to resolve relationship from > Customer to account: column account.account_id not loaded from storage (or > not > passed to new() prior to insert()). Maybe you forgot to call > ->discard_changes > to get defaults from the db. at loader.pl line 7 > > This is correct and expected. Read the error message more carefully. To break > it > down: > > *) You create a row, without specifying a value for account_id. > *) The resulting object has only a name, and its autoinc id, dbic does not > assume > that the value of account_id is NULL/undef, it simply isn't there (i.e. the > db-side > default may be 0, or 42 or 'kinky sex') > *) Since there is no value for the FK, the relationship can not be resolved > and > subsequently the exception you see is thrown. > *) If you do what has been suggeste d- call discard_changes to make a db-trip > to > retrieve the missing values - everything will just work. Alternatively you can > create() the row explici5tly specifying account_id => undef - this will work > as > expected too.
Hi Peter, Thanks for your explanation. That helps quite a bit. I have a couple of comments. 1. I've just created the object. Having to call "discard changes" on something with no changes seems very counter-intuitive to me. If I view the creation as the change, then "discard changes" implies that the creation will be discarded, but that's obviously not the case. I'm still not sure I understand what's happening here. 2. We have a very large performance-sensitive system. Having to make a second trip to the database isn't ideal for us. 3. Since the "account_id" has "is_nullable" set to a true value, would it be appropriate for DBIx::Class to assume that a missing nullable value is actually NULL and thus not throw an exception here? Cheers, Ovid -- Buy the book - http://www.oreilly.com/catalog/perlhks/ Tech blog - http://use.perl.org/~Ovid/journal/ Twitter - http://twitter.com/OvidPerl Official Perl 6 Wiki - http://www.perlfoundation.org/perl6 _______________________________________________ List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class IRC: irc.perl.org#dbix-class SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/ Searchable Archive: http://www.grokbase.com/group/[email protected]
