NAME

DBIx::Class::Schema::Loader::Base - Base DBIx::Class::Schema::Loader Implementation.

SYNOPSIS

See DBIx::Class::Schema::Loader

DESCRIPTION

This is the base class for the vendor-specific DBIx::Class::Schema::* classes, and implements the common functionality between them.

OPTIONS

Available constructor options are:

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.

additional_classes

List of additional classes which your table classes will use.

components

List of additional components to be loaded into your table classes. A good example would be ResultSetManager.

resultset_components

List of additional resultset components to be loaded into your table classes. A good example would be AlwaysRS. Component ResultSetManager will be automatically added to the above components list if this option is set.

constraint

Only load tables matching regex.

exclude

Exclude tables matching regex.

debug

Enable debug messages.

relationships

Try to automatically detect/setup has_a and has_many relationships.

moniker_map

Overrides the default tablename -> moniker translation. Can be either a hashref of table => moniker names, or a coderef for a translator function taking a single scalar table name argument and returning a scalar moniker. If the hash entry does not exist, or the function returns a false/undef value, the code falls back to default behavior for that table name.

inflect_map

Just like "moniker_map" above, but for inflecting (pluralizing) relationship names.

inflect

Deprecated. Equivalent to "inflect_map", but previously only took a hashref argument, not a coderef. If you set inflect to anything, that setting will be copied to "inflect_map".

connect_info

DEPRECATED, just use __PACKAGE__-connection()> instead, like you would with any other DBIx::Class::Schema (see those docs for details). Similarly, if you wish to use a non-default storage_type, use __PACKAGE__-storage_type()>.

dsn

DEPRECATED, see above...

user

DEPRECATED, see above...

password

DEPRECATED, see above...

options

DEPRECATED, see above...

METHODS

new

Constructor for DBIx::Class::Schema::Loader::Base, used internally by DBIx::Class::Schema::Loader.

load

Does the actual schema-construction work, used internally by DBIx::Class::Schema::Loader right after object construction.

tables

Returns a sorted list of loaded tables, using the original database table names. Actually generated from the keys of the monikers hash below.

my @tables = $schema->loader->tables;

monikers

Returns a hashref of loaded table-to-moniker mappings for the original database table names.

my $monikers = $schema->loader->monikers;
my $foo_tbl_moniker = $monikers->{foo_tbl};
# -or-
my $foo_tbl_moniker = $schema->loader->monikers->{foo_tbl};
# $foo_tbl_moniker would look like "FooTbl"

classes

Returns a hashref of table-to-classname mappings for the original database table names. You probably shouldn't be using this for any normal or simple usage of your Schema. The usual way to run queries on your tables is via $schema->resultset('FooTbl'), where FooTbl is a moniker as returned by monikers above.

my $classes = $schema->loader->classes;
my $foo_tbl_class = $classes->{foo_tbl};
# -or-
my $foo_tbl_class = $schema->loader->classes->{foo_tbl};
# $foo_tbl_class would look like "My::Schema::FooTbl",
#   assuming the schema class is "My::Schema"

SEE ALSO

DBIx::Class::Schema::Loader