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'