Rose::DB::Object::Std::Metadata - Standardized database object metadata.
use Rose::DB::Object::Std::Metadata; $meta = Rose::DB::Object::Std::Metadata->new(class => 'Product'); # ...or... # $meta = Rose::DB::Object::Std::Metadata->for_class('Product'); $meta->table('products'); $meta->columns ( id => { type => 'int', primary_key => 1 }, name => { type => 'varchar', length => 255 }, description => { type => 'text' }, category_id => { type => 'int' }, status => { type => 'varchar', check_in => [ 'active', 'inactive' ], default => 'inactive', }, start_date => { type => 'datetime' }, end_date => { type => 'datetime' }, date_created => { type => 'timestamp', default => 'now' }, last_modified => { type => 'timestamp', default => 'now' }, ); $meta->add_unique_key('name'); $meta->foreign_keys ( category => { class => 'Category', key_columns => { category_id => 'id', } }, ); ...
Rose::DB::Object::Std::Metadata is a subclass of Rose::DB::Object::Metadata that is designed to serve the needs of Rose::DB::Object::Std objects. See the Rose::DB::Object::Std documentations for information on what differentiates it from Rose::DB::Object.
Rose::DB::Object::Std::Metadata
Only the methods that are overridden are documented here. See the Rose::DB::Object::Metadata documentation for the rest.
This method is an alias for the add_primary_key_columns() method.
add_primary_key_columns()
Since Rose::DB::Object::Std objects must have a single primary key column named "id", calling this method with a COLUMNS argument of anything other than the column name "id" or a reference to an array containing the column name "id" will cause a fatal error.
In general, you do not need to use this method at all since the primary_key_columns() method is hard-coded to always return "id".
primary_key_columns()
This method does the same thing as the Rose::DB::Object::Metadata method of the same name, with one exception. If there is no column named "id" in the list of columns, a scalar primary key column named "id" is added to the column list. Then initialization proceeds as usual.
Always returns the column name "id" (in list context) or a reference to an array containing the column name "id" (in scalar context).
John C. Siracusa (siracusa@gmail.com)
Copyright (c) 2009 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Rose::DB::Object, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Rose::DB::Object
CPAN shell
perl -MCPAN -e shell install Rose::DB::Object
For more information on module installation, please visit the detailed CPAN module installation guide.