[Dbix-class] Null foreign keys and the reload_from_storage error
when its not wanted
Matt S Trout
dbix-class at trout.me.uk
Fri May 22 06:35:25 GMT 2009
On Thu, May 21, 2009 at 06:27:45PM -0700, David Ihnen wrote:
> Is this appropriate behavior or a bug?
>
> Consider this code here. It is part of our application's database test
> script. Its purpose is to hit every rel defined in the database so that
> we can get an early warning on any class configuration mismatching the
> state of the database.
>
> # get all the sources
> my $sources = $user->result_source->schema->{'source_registrations'};
Read the DBIx::Class::Schema docs and call the methods fore this.
> # grab all the registered sources
> foreach my $source (keys %{$sources}) {
> # grab all their relationships
> foreach my $rel (keys %{$sources->{$source}->{'_relationships'}}) {
Read the DBIx::Class::ResultSource docs and call the methods fore this.
> eval {
> my $row = $DBH->resultset($source)->single;
> $row->$rel if ($row)
> };
> print "$@\n" if ($@);
> ok(!$@, "test rel $source->$rel" );
> }
> }
>
> Runnign this eventually prints out this message here
>
> DBIx::Class::Relationship::Accessor::__ANON__(): Column dependency_id
> not loaded or not passed to new() prior to insert() on
> DB::Schema::cron_task=HASH(0x2fa4940) trying to resolve relationship
> (maybe you forgot to call ->reload_from_storage to get defaults from the
> db) at 02_db.t line 40
> not ok 563 - test rel cron_task->dependency
That should be an exists check, not a defined check. If dependency_id is
in the normal column list it should be fine.
--
Matt S Trout Catalyst and DBIx::Class consultancy with a clue
Technical Director and a commit bit: http://shadowcat.co.uk/catalyst/
Shadowcat Systems Limited
mst (@) shadowcat.co.uk http://shadowcat.co.uk/blog/matt-s-trout/
More information about the DBIx-Class
mailing list