NAME

Class::DBI::ClassGenerator - generate Class::DBI sub-class modules from a pre-exsting database's structure.

DESCRIPTION

Yadda-yadda

SYNOPSIS

Yadda-yadda

SUBROUTINES

create

This takes the following named parameters:

directory (compulsory)

The name of the directory into which to drop the generated classes. If it doesn't exist it will be created. Sub-directories will be created under here as appropriate.

directory => 'lib'
connect_info (compulsory)

An arrayref of the DSN, username and password to connect to the database.

connect_info => ['dbi:mysql:dbname', 'username', 'password']
base_class (compulsory)

The name of the base class that all your table classes will inherit their database connection from.

base_class => 'MyApp::DB'
tables (optional)

A hashref whose keys are table names in the database and the values are the classnames you desire.

tables => {
    artists => 'MyApp::Artist',
    tracks  => 'MyApp::Track',
    albums  => 'MyApp::Album',
    ...
}

If you leave this out, the code will assume that you want classes for all tables, and that their names should be generated thus:

The first character of the tablename is converted to uppercase;

An underscore followed by a character becomes the character, in
uppercase

The base class name and :: is prepended.

This is probably a close approximation for what you want anyway.

It returns a list of all the files created.

BUGS and WARNINGS

This should be considered to be pre-production code. It's probably chock full of exciting bugs.

DATABASES SUPPORTED

MySQL and SQLite are supported "out-of-the-box". Adding other databases is a simple matter of writing a "driver" module with two simple methods. You are encouraged to upload such modules to the CPAN yourself.

Class::DBI::ClassGenerator::Extending, for how to interrogate other databases.

AUTHOR, COPYRIGHT and LICENCE

Written by David Cantrell <david@cantrell.org.uk>

Copyright 2008-2009 Outcome Technologies Ltd

This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.