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.