The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Alzabo::Schema - Schema objects

SYNOPSIS

  use Alzabo::Schema;

  my $schema = Alzabo::Schema->load_from_file( name => 'foo' );

  foreach my $t ($schema->tables)
  {
     print $t->name;
  }

DESCRIPTION

Objects in this class represent the entire schema, containing table objects, which in turn contain foreign key objects and column objects, which in turn contain column definition objects.

METHODS

name

Returns

A string containing the name of the schema.

table ($name)

Returns

An Alzabo::Table object representing the specified table.

Throws

Alzabo::Exception::Params

tables (@optional_list)

Returns

A list of Alzabo::Table object named in the list given. If no list is provided, then it returns all table objects in the schema.

Throws

Alzabo::Exception::Params

has_table ($name)

Returns

A true or false value depending on whether or not the table exists in the schema.

begin_work

Starts a transaction. Calls to this function may be nested and it will be handled properly.

rollback

Rollback a transaction.

commit

Finishes a transaction with a commit. If you make multiple calls to begin_work, make sure to call this method the same number of times.

run_in_transaction ( sub { code... } )

This method takes a subroutine reference and wraps it in a transaction.

It will preserve the context of the caller and returns whatever the wrapped code would have returned.

driver

Returns

The Alzabo::Driver subclass object for the schema.

rules

Returns

The Alzabo::RDBMSRules subclass object for the schema.

sqlmaker

Returns

The Alzabo::SQLMaker subclass object for the schema.

AUTHOR

Dave Rolsky, <autarch@urth.org>