NAME

DBIx::Class::UUIDColumns - Implicit uuid columns

SYNOPSIS

package Artist;
__PACKAGE__->load_components(qw/UUIDColumns Core DB/);
__PACKAGE__->uuid_columns( 'artist_id' );

DESCRIPTION

This DBIx::Class component resembles the behaviour of Class::DBI::UUID, to make some columns implicitly created as uuid.

When loaded, UUIDColumns will search for a suitable uuid generation module from the following list of supported modules:

Data::UUID
APR::UUID*
UUID
Win32::Guidgen
Win32API::GUID

If no supporting module can be found, an exception will be thrown.

*APR::UUID will not be loaded under OpenBSD due to an as yet unidentified XS issue.

If you would like to use a specific module, you can set uuid_class:

__PACKAGE__->uuid_class('::Data::UUID');
__PACKAGE__->uuid_class('MyUUIDGenerator');

Note that the component needs to be loaded before Core.

METHODS

uuid_columns(@columns)

Takes a list of columns to be filled with uuids during insert.

__PACKAGE__->uuid_columns('id');

uuid_class($classname)

Takes the name of a UUIDMaker subclass to be used for uuid value generation. This can be a fully qualified class name, or a shortcut name starting with :: that matches one of the available DBIx::Class::UUIDMaker subclasses:

__PACKAGE__->uuid_class('CustomUUIDGenerator');
# loads CustomeUUIDGenerator

__PACKAGE->uuid_class('::Data::UUID');
# loads DBIx::Class::UUIDMaker::Data::UUID;

Note that uuid_class chacks to see that the specified class isa DBIx::Class::UUIDMaker subbclass and throws and exception if it isn't.

uuid_maker

Returns the current UUIDMaker instance for the given module.

my $uuid = __PACKAGE__->uuid_maker->as_string;

SEE ALSO

DBIx::Class::UUIDMaker

AUTHORS

Chia-liang Kao <clkao@clkao.org> Chris Laco <claco@chrislaco.com>

LICENSE

You may distribute this code under the same terms as Perl itself.