NAME

Class::DBI::Loader - Dynamic definition of Class::DBI sub classes.

SYNOPSIS

use Class::DBI::Loader;

my $loader = Class::DBI::Loader->new(
  debug                   => 1,
  dsn                     => "dbi:mysql:dbname",
  user                    => "root",
  password                => "",
  namespace               => "Data",
  additional_classes      => qw/Class::DBI::AbstractSearch/,
  additional_base_classes => qw/My::Stuff/,
  constraint              => '^foo.*',
  relationships           => 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.

use strict;

# you can use Data::Film directly
my $film = Data::Film->retrieve($id);

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.

AUTHOR

Sebastian Riedel, sri@oook.de

AUTHOR EMERITUS

IKEBE Tomohiro, ikebe@edge.co.jp

THANK YOU

Adam Anderson, Andy Grundman, 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