[Dbix-class] Fwd: DBIx::Class patch: better error diagnostics
Matt S Trout
dbix-class at trout.me.uk
Wed Dec 6 15:31:01 GMT 2006
Somebody kick the tires at this and apply it if it seems sane please?
Begin forwarded message:
> From: Marc Espie <espie at nerim.net>
> Date: 6 December 2006 15:12:15 GMT
> To: mst at shadowcatsystems.co.uk
> Subject: DBIx::Class patch: better error diagnostics
> Reply-To: espie at nerim.net
>
> As I said in former messages, I'm (still) a novice to DBIx::Class,
> so I'm
> probably qualified to comment on diagnostics ;-)
>
> Those two patches actually helped me set up my schema correctly
> (yes, they're
> very simple).
>
> I've noticed that the primary key check is the same, so it probably
> means
> some refactoring would help more, but those were a life-saver for me.
>
> --- lib/DBIx/Class/Relationship/HasMany.pm.orig Wed Dec 6 15:56:28
> 2006
> +++ lib/DBIx/Class/Relationship/HasMany.pm Wed Dec 6 15:57:00 2006
> @@ -16,6 +16,10 @@ sub has_many {
> "${class} has more"
> ) if $too_many;
>
> + $class->throw_exception(
> + "has_many needs a primary key to infer a join; ".
> + "${class} has none"
> + ) if !defined $pri;
> my ($f_key,$guess);
> if (defined $cond && length $cond) {
> $f_key = $cond;
> --- lib/DBIx/Class/Relationship/HasOne.pm.orig Wed Dec 6 15:57:05
> 2006
> +++ lib/DBIx/Class/Relationship/HasOne.pm Wed Dec 6 15:58:09 2006
> @@ -21,6 +21,10 @@ sub _has_one {
> "might_have/has_one can only infer join for a single primary
> key; ".
> "${class} has more"
> ) if $too_many;
> + $class->throw_exception(
> + "might_have/has_one needs a primary key to infer a join; ".
> + "${class} has none"
> + ) if !defined $pri;
> my $f_class_loaded = eval { $f_class->columns };
> my ($f_key,$guess);
> if (defined $cond && length $cond) {
--
Matt S Trout, Technical Director, Shadowcat Systems Ltd.
Offering custom development, consultancy and support contracts for
Catalyst,
DBIx::Class and BAST. Contact mst (at) shadowcatsystems.co.uk for
details.
+ Help us build a better perl ORM: http://dbix-
class.shadowcatsystems.co.uk/ +
More information about the Dbix-class
mailing list