package My::Schema;
use strict;
use warnings;
use DBIx::Class::Schema::Loader qw/ make_schema_at /;
my $dsn = 'dbi:SQLite:./testdb';
make_schema_at(
'My::Schema',
{ debug => 0,
dump_directory => './lib',
},
[ $dsn, '', '' ],
);
my $schema = My::Schema->connect( $dsn, '', '', '' );
my @relationships = $schema->source('T')->_relationships();
#...
1;
####
CREATE TABLE a (u integer, PRIMARY KEY (u));
CREATE TABLE t (i integer, j integer, u integer, Primary key (i,j), constraint fkey1 foreign key (u) references a (u));
CREATE TABLE s (j integer, r1 integer, r2 integer, constraint fkey foreign key (r1,r2) references t (i,j));
####
DB<2> x @relationships
0 HASH(0x261359c)
'ss' => HASH(0x3c6eef4)
'attrs' => HASH(0x3c6c884)
'accessor' => 'multi'
'cascade_copy' => 0
'cascade_delete' => 0
'join_type' => 'LEFT'
'class' => 'My::Schema::Result::S'
'cond' => HASH(0x3c6926c)
'foreign.r1' => 'self.i'
'foreign.r2' => 'self.j'
'source' => 'My::Schema::Result::S'
'u' => HASH(0x3bfe16c)
'attrs' => HASH(0x3bfb69c)
'accessor' => 'filter'
'is_deferrable' => 0
'is_foreign_key_constraint' => 1
'join_type' => 'LEFT'
'on_delete' => 'NO ACTION'
'on_update' => 'NO ACTION'
'undef_on_null_fk' => 1
'class' => 'My::Schema::Result::A'
'cond' => HASH(0x3bfdd8c)
'foreign.u' => 'self.u'
'source' => 'My::Schema::Result::A'