Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dbix::class::schema::loader::dbi::writing(3pm) [debian man page]

DBIx::Class::Schema::Loader::DBI::Writing(3pm)		User Contributed Perl Documentation	    DBIx::Class::Schema::Loader::DBI::Writing(3pm)

NAME
DBIx::Class::Schema::Loader::DBI::Writing - Loader subclass writing guide for DBI SYNOPSIS
package DBIx::Class::Schema::Loader::DBI::Foo; # THIS IS JUST A TEMPLATE TO GET YOU STARTED. use strict; use warnings; use base 'DBIx::Class::Schema::Loader::DBI'; use mro 'c3'; sub _table_uniq_info { my ($self, $table) = @_; # ... get UNIQUE info for $table somehow # and return a data structure that looks like this: return [ [ 'keyname' => [ 'colname' ] ], [ 'keyname2' => [ 'col1name', 'col2name' ] ], [ 'keyname3' => [ 'colname' ] ], ]; # Where the "keyname"'s are just unique identifiers, such as the # name of the unique constraint, or the names of the columns involved # concatenated if you wish. } sub _table_comment { my ( $self, $table ) = @_; return 'Comment'; } sub _column_comment { my ( $self, $table, $column_number ) = @_; return 'Col. comment'; } 1; DETAILS
The only required method for new subclasses is "_table_uniq_info", as there is not (yet) any standardized, DBD-agnostic way for obtaining this information from DBI. The base DBI Loader contains generic methods that *should* work for everything else in theory, although in practice some DBDs need to override one or more of the other methods. The other methods one might likely want to override are: "_table_pk_info", "_table_fk_info", "_tables_list" and "_extra_column_info". See the included DBD drivers for examples of these. To import comments from the database you need to implement "_table_comment", "_column_comment" AUTHOR
See "AUTHOR" in DBIx::Class::Schema::Loader and "CONTRIBUTORS" in DBIx::Class::Schema::Loader. LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-06-08 DBIx::Class::Schema::Loader::DBI::Writing(3pm)

Check Out this Related Man Page

DBIx::Class::Schema::Loader::Manual::UpgradingFromV4(3pmUser Contributed Perl DocumentatiDBIx::Class::Schema::Loader::Manual::UpgradingFromV4(3pm)

NAME
DBIx::Class::Schema::Loader::Manual::UpgradingFromV4 - Important Information Related to Upgrading from Version 0.04006 What Changed o add_column The new Loader detects much more information about columns and sets flags like "is_auto_increment" that it didn't set before. o RelBuilder The new RelBuilder will give you nicer accessor names for relationships, so you will no longer have conflicts between a foreign key column and the relationship accessor itself (if the FK is named "_id".) It will also more correctly infer the relationship type, e.g. some relationships that were previously detected as a "has_many" will now be a "might_have" (when it detects a unique constraint on the foreign key column.) Also "cascade_delete" and "cascade_copy" are turned off for by default for "has_many" and "might_have" relationships, while "belongs_to" relationships are created with "on_delete => 'CASCADE'" and "on_update => 'CASCADE'" by default. This is overridable via relationship_attrs. o moniker_map Table names are now singularized when determining the "Result" class names. So the table "user_roles" would have become "UserRoles" in 0.04006 but now becomes "UserRole" instead. o use_namespaces Now defaults to on. See "use_namespaces" in DBIx::Class::Schema::Loader::Base and "load_namespaces" in DBIx::Class::Schema. o Support for more databases We now support Microsoft SQL Server and Sybase, and there are also many improvements to the other backends. Backward Compatibility In backward compatibility mode, the Loader will use the old relationship names and types, will not singularize monikers for tables, and "use_namespaces" will be off. To control this behavior see "naming" in DBIx::Class::Schema::Loader::Base and "use_namespaces" in DBIx::Class::Schema::Loader::Base. Static Schemas When reading a "Schema.pm" from a static schema generated with an 0.04 version of Loader, backward compatibility mode will default to on, unless overridden with the "naming" and/or "use_namespaces" attributes. Dynamic Schemas Dynamic schemas will always by default use 0.04006 mode and have "use_namespaces" off. To upgrade a dynamic schema, set the "naming" and "use_namespaces" attributes (which is proxied to the loader) in your "Schema.pm": __PACKAGE__->naming('current'); __PACKAGE__->use_namespaces(1); AUTHOR
See "AUTHOR" in DBIx::Class::Schema::Loader and "CONTRIBUTORS" in DBIx::Class::Schema::Loader. LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2010-06-10 DBIx::Class::Schema::Loader::Manual::UpgradingFromV4(3pm)
Man Page

Featured Tech Videos