warn when redefining relationships (RT#73876)
Tim Bunce [Tue, 10 Jan 2012 12:57:05 +0000 (07:57 -0500)]
Add a carp when a relationship is being redefined and DBIC_TRACE is on.

lib/DBIx/Class.pm
lib/DBIx/Class/ResultSource.pm

index 443e81e..ac48ee2 100644 (file)
@@ -490,7 +490,9 @@ talexb: Alex Beamish <talexb@gmail.com>
 
 tamias: Ronald J Kimball <rjk@tamias.net>
 
-teejay : Aaron Trevena <teejay@cpan.org>
+teejay: Aaron Trevena <teejay@cpan.org>
+
+timbunce: Tim Bunce <Tim.Bunce@pobox.com>
 
 Todd Lipcon
 
index 8bf7d67..c030d94 100644 (file)
@@ -1248,6 +1248,12 @@ sub add_relationship {
   }
 
   my %rels = %{ $self->_relationships };
+  if ($rels{$rel} && $ENV{DBIC_TRACE}) {
+    # warning is useful e.g. for large Schema::Loader generated schemas where
+    # relationships have been added manually and then later generated by
+    # Schema::Loader.
+    carp "$rel relationship redefined";
+  }
   $rels{$rel} = { class => $f_source_name,
                   source => $f_source_name,
                   cond  => $cond,