NAME
Class::DBI::Loader - Dynamic definition of Class::DBI sub classes.
SYNOPSIS
use
Class::DBI::Loader;
my
$loader
= Class::DBI::Loader->new(
dsn
=>
"dbi:mysql:dbname"
,
user
=>
"root"
,
password
=>
""
,
options
=> {
RaiseError
=> 1,
AutoCommit
=> 0 },
namespace
=>
"Data"
,
additional_classes
=>
qw/Class::DBI::AbstractSearch/
,
# or arrayref
additional_base_classes
=>
qw/My::Stuff/
,
# or arrayref
left_base_classes
=>
qw/Class::DBI::Sweet/
,
# or arrayref
constraint
=>
'^foo.*'
,
relationships
=> 1,
options
=> {
AutoCommit
=> 1 },
inflect
=> {
child
=>
'children'
},
require
=> 1
);
my
$class
=
$loader
->find_class(
'film'
);
# $class => Data::Film
my
$obj
=
$class
->retrieve(1);
use with mod_perl
in your startup.pl
# load all tables
use
Class::DBI::Loader;
my
$loader
= Class::DBI::Loader->new(
dsn
=>
"dbi:mysql:dbname"
,
user
=>
"root"
,
password
=>
""
,
namespace
=>
"Data"
,
);
in your web application.
DESCRIPTION
Class::DBI::Loader automate the definition of Class::DBI sub-classes. scan table schemas and setup columns, primary key.
class names are defined by table names and namespace option.
+-----------+-----------+-----------+
| table | namespace | class |
+-----------+-----------+-----------+
| foo | Data | Data::Foo |
| foo_bar | | FooBar |
+-----------+-----------+-----------+
Class::DBI::Loader supports MySQL, Postgres and SQLite.
See Class::DBI::Loader::Generic.
METHODS
new %args
- additional_base_classes
-
List of additional base classes your table classes will use.
- left_base_classes
-
List of additional base classes, that need to be leftmost, for example Class::DBI::Sweet (former Catalyst::Model::CDBI::Sweet).
- additional_classes
-
List of additional classes which your table classes will use.
- constraint
-
Only load tables matching regex.
- exclude
-
Exclude tables matching regex.
- debug
-
Enable debug messages.
- dsn
-
DBI Data Source Name.
- namespace
-
Namespace under which your table classes will be initialized.
- password
-
Password.
- options
-
Optional hashref to specify DBI connect options
- relationships
-
Try to automatically detect/setup has_a and has_many relationships.
- inflect
-
An hashref, which contains exceptions to Lingua::EN::Inflect::PL(). Useful for foreign language column names.
- user
-
Username.
- require
-
Attempt to require the dynamically defined module, so that extensions defined in files. By default errors from imported modules are suppressed. When you want to debug, use require_warn.
- require_warn
-
Warn of import errors when requiring modules.
AUTHOR
Daisuke Maki dmaki@cpan.org
AUTHOR EMERITUS
Sebastian Riedel, sri@oook.de
IKEBE Tomohiro, ikebe@edge.co.jp
THANK YOU
Adam Anderson, Andy Grundman, Autrijus Tang, Dan Kubb, David Naughton, Randal Schwartz, Simon Flack and all the others who've helped.
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Class::DBI, Class::DBI::mysql, Class::DBI::Pg, Class::DBI::SQLite, Class::DBI::Loader::Generic, Class::DBI::Loader::mysql, Class::DBI::Loader::Pg, Class::DBI::Loader::SQLite