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. Best specified as a qr// regex.
exclude
Exclude tables matching regex. Best specified as a qr// 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_plural
Just like "moniker_map" above, but for pluralizing relationship names.
inflect_singular
Just like "moniker_map" above, but for singularizing relationship names.
inflect_map
Deprecated. Equivalent to "inflect_plural".
inflect
Deprecated. Equivalent to "inflect_plural".
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.
my @tables = $schema->loader->tables;
monikers
Returns a hashref of loaded table-to-moniker mappings. There will be two entries for each table, the original name and the "normalized" name, in the case that the two are different (such as databases that like uppercase table names, or preserve your original mixed-case definitions, or what-have-you).
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. In some cases it will contain multiple entries per table for the original and normalized table names, as above in #monikers
.
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"