Name

Object::Relation::Setup::DB - Set up database stores

Synopsis

See Object::Relation::Setup.

Description

This module inherits from Object::Relation::Setup to function as the base class for all store setup classes that build a data stores in databases. Its interface is defined entirely by Object::Relation::Setup.

Class Interface

Constructors

new

my $db_setup = Object::Relation::Setup::DB->new(\%params);

The constructor inherits from Object::Relation::Setup, but adds support for these parameters:

dsn

The DSN to use to connect to the database via the DBI.

user

The username to use when connecting to the database. Defaults to ''.

pass

The password to use when connecting to the database. Defaults to ''.

Class Methods

dbd_class

my $dbd_class = Object::Relation::Setup::DB->dbd_class;

This abstract class method returns the name of the DBI database driver class, such as "DBD::Pg" or "DBD::SQLite". Defaults to using the last part of the schema class name (e.g., "Pg" for Object::Relation::Setup::DB::Pg) prepended with "DBD::".

dsn_dbd

my $dsn_dbd = Object::Relation::Setup::DB->dsn_dbd;

Returns the part of the database driver class name suitable for use in a DBI DSN. By default, this method simply returns the value returned by dbd_class(), but with the leading "DBD::" stripped off.

connect_attrs

DBI->connect(
    $dsn, $user, $pass,
    { Object::Relation::Setup::DB->connect_attrs }
);

Returns a list of arugments to be used in the attributes hash passed to the DBI connect() method. By default, the arguments are:

RaiseError  => 0,
PrintError  => 0,
HandleError => Object::Relation::Exception::DBI->handler,

But they may be overridden or added to by subclasses.

Instance Interface

Instance Accessors

dsn

my $dsn = $setup->dsn;
$setup->dsn($dsn);

Gets or sets the DSN to use when connecting to the database via the DBI.

user

my $user = $setup->user;
$setup->user($user);

Gets or sets the username used to connect to the database via the DBI.

pass

my $pass = $setup->pass;
$setup->pass($pass);

Gets or sets the passname used to connect to the database via the DBI.

Instance Methods

setup

$setup->setup;

Sets up the data store by calling build_db().

build_db

$setup->build_db;

Builds the database.

connect

my $dbh = $setup->connect;
$dbh = $setup->connect(@args);

Connects to the database and returns the database handle, which is also stored in the dbh attribute. By default, it uses the dsn, user, and pass attributes to connect, but these can be overridden by passing them to the method as arguments, instead.

The attributes passed to DBI->connect are those returned by connect_attrs.

disconnect_all

$setup->disconnect_all;

Disconnects all cached connections to the database server (that is, created by calls to DBI->connect_cached for the driver returned by dbd_class(). Used by test_cleanup() methods and in other contexts.

Copyright and License

Copyright (c) 2004-2006 Kineticode, Inc. <info@obj_relode.com>

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.