NAME
Rose::DB::Object::Std::Metadata - Standardized database object metadata.
SYNOPSIS
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',
}
},
);
...
DESCRIPTION
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
.
Only the methods that are overridden are documented here. See the Rose::DB::Object::Metadata
documentation for the rest.
OBJECT METHODS
- add_primary_key_column COLUMN
-
This method is an alias for the
add_primary_key_columns()
method. - add_primary_key_columns 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". - generate_primary_key_value DB
-
Given the
Rose::DB
-derived object DB, generate a new primary key column value for the table described by this metadata object. If aprimary_key_generator
is defined, it will be called (passed this metadata object and the DB) and its value returned.If no
primary_key_generator
is defined, a new primary key value will be generated, if possible, using the native facilities of the current database. Note that this may not be possible for databases that auto-generate such values only after an insertion. In that case, undef will be returned. - generate_primary_key_values
-
This method is an alias for
generate_primary_key_value()
. - initialize [ARGS]
-
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. - primary_key_columns
-
Always returns the column name "id" (in list context) or a reference to an array containing the column name "id" (in scalar context).
AUTHOR
John C. Siracusa (siracusa@mindspring.com)
COPYRIGHT
Copyright (c) 2005 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.