X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FParser%2FDBIx%2FClass.pm;h=e3f0860d7b3e4671cb611c8a2a2454cddfae8861;hp=edf6224ae6bd662030212df8f1247a97391587a0;hb=3d618782661512ffb7b263a222e183808170b88a;hpb=0b5dee17b40cc4029549209a6c84b14c3647a361 diff --git a/lib/SQL/Translator/Parser/DBIx/Class.pm b/lib/SQL/Translator/Parser/DBIx/Class.pm index edf6224..e3f0860 100644 --- a/lib/SQL/Translator/Parser/DBIx/Class.pm +++ b/lib/SQL/Translator/Parser/DBIx/Class.pm @@ -145,16 +145,18 @@ sub parse { #Decide if this is a foreign key based on whether the self #items are our primary columns. + $DB::single = 1 if $moniker eq 'Tests::MBTI::Result'; # If the sets are different, then we assume it's a foreign key from # us to another table. - # OR: If is_foreign_key attr is explicity set on one the local columns - if ( ! exists $created_FK_rels{$rel_table}->{$key_test} - && - ( !$source->compare_relationship_keys(\@keys, \@primary) || - grep { $source->column_info($_)->{is_foreign_key} } @keys - ) - ) { + # OR: If is_foreign_key_constraint attr is explicity set (or set to false) on the relation + if ( ! exists $created_FK_rels{$rel_table}->{$key_test} && + ( exists $rel_info->{attrs}{is_foreign_key_constraint} && + $rel_info->{attrs}{is_foreign_key_constraint} || + !$source->compare_relationship_keys(\@keys, \@primary) + ) + ) + { $created_FK_rels{$rel_table}->{$key_test} = 1; $table->add_constraint( type => 'foreign_key',