DBIx::Class::Schema::Loader automates the definition of a
DBIx::Class::Schema by scanning database table definitions and setting
up the columns, primary keys, and relationships.
DBIx::Class::Schema::Loader currently supports only the DBI storage
type. It has explicit support for DBD::Pg, DBD::mysql, DBD::DB2, and
DBD::SQLite. Other DBI drivers may function to a greater or lesser
degree with this loader, depending on how much of the DBI spec they
implement, and how standard their implementation is. Patches to make
other DBDs work correctly welcome.
See DBIx::Class::Schema::Loader::DBI::Writing for notes on writing your
own vendor-specific subclass for an unsupported DBD driver.
This module requires DBIx::Class 0.06 or later, and obsoletes the older
DBIx::Class::Loader.
This module is designed more to get you up and running quickly against
an existing database, or to be effective for simple situations, rather
than to be what you use in the long term for a complex database/project.
A Perl module which provides an enhanced database populate method
Works in conjunction with InflateColumn::DateTime to automatically set update
and create date and time based fields in a table.
This is an SQL to OO mapper with an object API inspired by Class::DBI (with a
compatibility layer as a springboard for porting) and a resultset API that
allows abstract encapsulation of database operations. It aims to make
representing queries in your code as perl-ish as possible while still providing
access to as many of the capabilities of the database as possible, including
retrieving related records from multiple tables in a single query, JOIN, LEFT
JOIN, COUNT, DISTINCT, GROUP BY, ORDER BY and HAVING support.
DBIx::Class can handle multi-column primary and foreign keys, complex queries
and database-level paging, and does its best to only query the database in
order to return something you've directly asked for. If a resultset is used as
an iterator it only fetches rows off the statement handle as requested in order
to minimise memory usage. It has auto-increment support for SQLite, MySQL,
PostgreSQL, Oracle, SQL Server and DB2 and is known to be used in production
on at least the first four, and is fork- and thread-safe out of the box
(although your DBD may not be).
This project is still under rapid development, so large new features may be
marked EXPERIMENTAL - such APIs are still usable but may have edge bugs.
Failing test cases are *always* welcome and point releases are put out rapidly
as bugs are found and fixed.
This module provides methods for working with nested set trees. The
nested tree model is a way of representing hierarchical information in
a database. This takes a different approach to the Adjacency List
implementation. (see DBIx::Class::Tree::AdjacencyList which uses
parent relationships in a recursive manner).
This DBIx::Class component resembles the behaviour of Class::DBI::UUID,
implicitly creating columns as uuid.
This module allows to specify 'virtual columns' in DBIx::Class schema
classes. Virtual columns behave almost like regular columns but are not
stored in the database. They may be used to store temporary information
in the DBIx::Class::Row object and without introducting an additional
interface.
Most DBIx::Class methods like "set_column", "set_columns", "get_column",
"get_columns", "column_info", ... will work with regular as well as
virtual columns.
CRUD methods for DBIx::Class
DBIx::Connector provides a simple interface for fast and safe DBI
connection and transaction management. Connecting to a database can
be expensive; you don't want your application to re-connect every time
you need to run a query. The efficient thing to do is to hang on to a
database handle to maintain a connection to the database in order to
minimize that overhead. DBIx::Connector lets you do that without
having to worry about dropped or corrupted connections.
DBIx::ContextualFetch redefines some of the various fetch methods to
add context sensitivity.