SYNOPSIS
DESCRIPTION
- This is a sql to oop mapper, inspired by the Class::DBI framework, and
- meant to support compability with it, while restructuring the insides,
+ 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.
- It's currently considered EXPERIMENTAL - bring this near a production
- database at your own risk! The API is *not* fixed yet, although most of
- the primitives should be good for the future and any API changes will be
- posted to the mailing list before they're committed.
+ 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 -
IRC: irc.perl.org#dbix-class
QUICKSTART
- If you're using Class::DBI, replacing
+ If you're using Class::DBI, and want an easy and fast way of migrating
+ to DBIx::Class, take a look at DBIx::Class::CDBICompat.
+
+ 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.
+
+ Simple
+ 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.
+
+ Schema
+ 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.
+
+SEE ALSO
+ DBIx::Class::Core - DBIC Core Classes
+ DBIx::Class::Manual - User's manual
+ DBIx::Class::CDBICompat - Class::DBI Compat layer
+ DBIx::Class::DB - database-level methods
+ DBIx::Class::Table - table-level methods
+ DBIx::Class::Row - row-level methods
+ DBIx::Class::PK - primary key methods
+ DBIx::Class::ResultSet - search result-set methods
+ DBIx::Class::Relationship - relationships between tables
+AUTHOR
+ Matt S. Trout <mst@shadowcatsystems.co.uk>
- use base qw/Class::DBI/;
+CONTRIBUTORS
+ Andy Grundman <andy@hybridized.org>
- with
+ Brian Cassidy <bricas@cpan.org>
- use base qw/DBIx::Class/;
- __PACKAGE__->load_components(qw/CDBICompat Core DB/);
+ Dan Kubb <dan.kubb-cpan@onautopilot.com>
- will probably get you started.
+ Dan Sully <daniel@cpan.org>
- If you're using AUTO_INCREMENT for your primary columns, you'll also
- want yo load the approriate PK::Auto subclass - e.g.
+ David Kamholz <dkamholz@cpan.org>
- __PACKAGE__->load_components(qw/CDBICompat PK::Auto::SQLite Core DB/);
+ Jules Bean
- (with is what ::Test::SQLite does to present the
- Class::DBI::Test::SQLite interface)
+ Marcus Ramberg <mramberg@cpan.org>
- If you fancy playing around with DBIx::Class from scratch, then read the
- docs for DBIx::Class::Table, ::Row, ::Schema, ::DB and ::Relationship,
+ Paul Makepeace
- use base qw/DBIx::Class/;
- __PACKAGE__->load_components(qw/Core DB/);
+ CL Kao
- and have a look at t/lib/DBICTest.pm for a brief example.
+ Jess Robinson
-AUTHOR
- Matt S. Trout <mst@shadowcatsystems.co.uk>
+ Marcus Ramberg
-CONTRIBUTORS
- Andy Grundman <andy@hybridized.org>
+ Will Hawes
- Brian Cassidy <bricas@cpan.org>
+ Todd Lipcon
- Dan Kubb <dan.kubb-cpan@onautopilot.com>
+ Daniel Westermann-Clark <danieltwc@cpan.org>
- Dan Sully <daniel@cpan.org>
+ Alexander Hartmaier <alex_hartmaier@hotmail.com>
- davekam
+ Zbigniew Lukasiak
- Marcus Ramberg <mramberg@cpan.org>
+ Nigel Metheringham <nigelm@cpan.org>
+
+ Jesper Krogh
+
+ Brandon Black
LICENSE
You may distribute this code under the same terms as Perl itself.