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"