[Dbix-class] DBIx-Table-TestDataGenerator-0.001 released

"José Diaz Seng" josediazseng at gmx.de
Wed Oct 31 21:24:04 GMT 2012


I spent some time reading documentation about DBIC Schema Loader and DBIC in
general (hard stuff for newcomers to DBIC...) and wrote a little program that uses 
Schema Loader to load the schema of a little SQLite test database.

I found out how to get one of the metadata information I am interested in, namely
foreign keys, the constrained columns, the referenced tables and the referenced 
columns. But I am quite sure this is not the way one should do it since I am 
digging bits of information out of a data structure I get when calling a method 
whose name starts with an underscore... Here is what I did:

use DBIx::Class::Schema::Loader qw/ make_schema_at /;

my $dsn = 'dbi:SQLite:./testdb';

    {   debug          => 0,
        dump_directory => './lib',
    [ $dsn, '', '' ],

my $schema = My::Schema->connect( $dsn, '', '', '' );

my @relationships = $schema->source('T')->_relationships();

@relationships in my case looks as follows:

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'

So I could pick out some of the information I am looking after. I am sure you 
can show me a better way to do this.

Best regards

  ----- Ursprüngliche Nachricht -----
  Von: fREW Schmidt
  Gesendet: 30.10.12 03:29 Uhr
  An: DBIx::Class user and developer list
  Betreff: Re: [Dbix-class] DBIx-Table-TestDataGenerator-0.001 released
   If you were willing to use DBIC and DBIC Schema Loader instead of raw DBI you could support All The Databases. :)
  On Oct 29, 2012 5:01 PM, José Diaz Seng <josediazseng at gmx.de> wrote:
 yesterday I have released the initial version of DBIx::Table::TestDataGenerator,
 see http://search.cpan.org/~jds/DBIx-Table-TestDataGenerator-0.001/
 Its goal is to support testing database clients by adding test data to tables.
 The main features are the automatic handling of table constraints and dealing
 with parent child relations in tables. Currently Oracle, PostgreSQL and SQLite
 are supported, additional DBMSs are in the works.
 It has already been a real pleasure discussing things with the Perl community, I
 want to say a big thank you to all people involved, for detailed
 acknowledgements (and everything else) please see the README file.
 Hopefully the module will be useful to you. I am eagerly awaiting your comments,
 critique and feature requests!
 To all affected by the hurricane reaching the East Coast right now I hope it 
 will not be half as bad as feared, good luck!
 Best regards
 List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
 IRC: irc.perl.org#dbix-class
 SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
 Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk   


More information about the DBIx-Class mailing list