X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRelationship%2FCascadeActions.pm;h=bcd3800afbd2fe65edce53d75413e27d6ce85e25;hb=350e8d57;hp=fde8f5df9624d91eaf200153541898d0ec450b21;hpb=fb61e30ca4a0670462445ed8c376eccdfe68ca71;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/Relationship/CascadeActions.pm b/lib/DBIx/Class/Relationship/CascadeActions.pm index fde8f5d..bcd3800 100644 --- a/lib/DBIx/Class/Relationship/CascadeActions.pm +++ b/lib/DBIx/Class/Relationship/CascadeActions.pm @@ -3,8 +3,10 @@ package # hide from PAUSE use strict; use warnings; +use DBIx::Class::Carp; +use namespace::clean; -our %_pod_inherit_config = +our %_pod_inherit_config = ( class_map => { 'DBIx::Class::Relationship::CascadeActions' => 'DBIx::Class::Relationship' } ); @@ -26,7 +28,12 @@ sub delete { my $ret = $self->next::method(@rest); foreach my $rel (@cascade) { - $self->search_related($rel)->delete_all; + if( my $rel_rs = eval{ $self->search_related($rel) } ) { + $rel_rs->delete_all; + } else { + carp "Skipping cascade delete on relationship '$rel' - related resultsource '$rels{$rel}{class}' is not registered with this schema"; + next; + } } $guard->commit;