DBIx::Class - Extensible and flexible object <-> relational mapper.
This is an SQL to OO mapper, inspired by the Class::DBI framework, and meant to support compability with it, while restructuring the internals and making it possible to support some new features like self-joins, distinct, group bys and more.
This project is still at an early stage, so the maintainers don't make any absolute promise that full backwards-compatibility will be supported; however, if we can without compromising the improvements we're trying to make, we will, and any non-compatible changes will merit a full justification on the mailing list and a CPAN developer release for people to test against.
The community can be found via -
Mailing list: http://lists.rawmode.org/mailman/listinfo/dbix-class/ SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/ Wiki: http://dbix-class.shadowcatsystems.co.uk/ IRC: irc.perl.org#dbix-class
There are two ways of using DBIx::Class, the "simple" way and the "schema" way. The "simple" way of using DBIx::Class needs less classes than the "schema" way but doesn't give you the ability to easily use different database connections.
Some examples where different database connections are useful are:
different users with different rights different databases with the same schema.
First you need to create a base class which all other classes will inherit from. See DBIx::Class::DB for information on how to do this.
Then you need to create a class for every table you want to use with DBIx::Class. See DBIx::Class::Table for information on how to do this.
With this approach, the table classes inherit directly from DBIx::Class::Core, although it might be a good idea to create a "parent" class for all table classes that inherits from DBIx::Class::Core and adds additional methods needed by all table classes, e.g. reading a config file or loading auto primary key support.
Look at DBIx::Class::Schema for information on how to do this.
If you need more help, check out the introduction in the manual below.
Matt S. Trout <email@example.com>
Andy Grundman <firstname.lastname@example.org>
Brian Cassidy <email@example.com>
Dan Kubb <firstname.lastname@example.org>
Dan Sully <email@example.com>
David Kamholz <firstname.lastname@example.org>
Marcus Ramberg <email@example.com>
Daniel Westermann-Clark <firstname.lastname@example.org>
Alexander Hartmaier <email@example.com>
Nigel Metheringham <firstname.lastname@example.org>
You may distribute this code under the same terms as Perl itself.