NAME
Gestinanna::Schema::Repository - provides base schema support for repositories
SYNOPSIS
package My::Schema;
use Gestinanna::Schema::Repository q(Prefix);
@ISA = qw(Gestinanna::Schema::Repository);
@TABLES = (
# `normal' definitions of repository contents
Prefix => {
},
);
DESCRIPTION
This module can be used to create the basic tables and relations needed to manage a versioned repository.
The schema definitions held in @TABLE, @OBSOLETE, and @RELATIONS should define the objects being held in the repository. Usually, the tables are prefixed with the same prefix as given to Gestinanna::Schema::Repository.
Individual revisions are assigned a unique id in the Prefix
table. The primary key of this table is prefix
(all lowercase version of the prefix). Tables defined in the repository sub-class should define a relationship between this primary key and the data in the object tables. Simple data types may be kept in the Prefix
table (columns beginning with data_
will not be used by the repository [this also holds for the column data
with no underscore]).
The repository tracks resources by revision number and allows tags to be assigned to resource/revision combinations. Resources may be retrieved by revision or tag at runtime.
SEE ALSO
Gestinanna::Runtime::Repository.
AUTHOR
James G. Smith, <jsmith@cpan.org>
COPYRIGHT
Copyright (C) 2002 Texas A&M University. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.