DBIx::Class::Loader - Dynamic definition of DBIx::Class sub classes.
use DBIx::Class::Loader; my $loader = DBIx::Class::Loader->new( dsn => "dbi:mysql:dbname", user => "root", password => "", namespace => "Data", additional_classes => [qw/DBIx::Class::Foo/], additional_base_classes => [qw/My::Stuff/], left_base_classes => [qw/DBIx::Class::Bar/], constraint => '^foo.*', relationships => 1, options => { AutoCommit => 1 }, inflect => { child => 'children' }, debug => 1, ); my $class = $loader->find_class('film'); # $class => Data::Film my $obj = $class->find(1);
use with mod_perl
in your startup.pl
# load all tables use DBIx::Class::Loader; my $loader = DBIx::Class::Loader->new( dsn => "dbi:mysql:dbname", user => "root", password => "", namespace => "Data", );
in your web application.
use strict; # you can use Data::Film directly my $film = Data::Film->retrieve($id);
DBIx::Class::Loader automate the definition of DBIx::Class sub-classes by scanning table schemas and setting up columns and primary keys.
Class names are defined by table names and the namespace option, which is required.
+---------+-----------+--------------+ | table | namespace | class | +---------+-----------+--------------+ | foo | Data | Data::Foo | | foo_bar | MyDB | MyDB::FooBar | +---------+-----------+--------------+
DBIx::Class::Loader supports MySQL, Postgres, SQLite and DB2. See DBIx::Class::Loader::Generic for more, and DBIx::Class::Loader::Writing for notes on writing your own db-specific subclass for an unsupported db.
Class::DBI::Loader and Class::DBI are now obsolete, use DBIx::Class and this module instead. ;)
Example in Synopsis above demonstrates the available arguments. For detailed information on the arguments, see the DBIx::Class::Loader::Generic documentation.
Sebastian Riedel, sri@oook.de
sri@oook.de
Based upon the work of IKEBE Tomohiro
Adam Anderson, Andy Grundman, Autrijus Tang, Dan Kubb, David Naughton, Randal Schwartz, Simon Flack and all the others who've helped.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
DBIx::Class
To install DBIx::Class::Loader, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DBIx::Class::Loader
CPAN shell
perl -MCPAN -e shell install DBIx::Class::Loader
For more information on module installation, please visit the detailed CPAN module installation guide.