NAME
Test::DBIC::Versioned - Test upgrade scripts for DBIx::Class::Schema::Versioned
VERSION
version 0.01
SYNOPSIS
use Test::More;
use Test::DBIC::Versioned;
use Test::DBIC::Versioned::MySQL;
my $old_DB = Test::DBIC::Versioned::MySQL->new();
my $new_DB = Test::DBIC::Versioned::MySQL->new();
is $old_DB->run_sql('sql/DB-21-MySQL.sql'), '',
'No errors deploying at version 21';
is $new_DB->run_sql('sql/DB-22-MySQL.sql'), '',
'No errors deploying at version 22';
my $errors = $old_DB->run_sql('upgrades/RL-DB-21-22-MySQL.sql';
is $errors, '', 'No errors upgrading from 21 to 22';
is_deeply $old_DB->describe_tables, $new_DB->describe_tables,
'Upgrade of version 21 to 22 matches a fresh deploy of 22';
done_testing();
DESCRIPTION
This module provides helpful a wrapper for testing the correctness of DBIx::Class::Schema::Versioned upgrade scripts. Currently only MySQL is supported.
METHODS
new
A standard Moose constructor. Takes no arguments. A temporary database of the appropriate type will be lazy built when needed.
run_sql
Runs some SQL commands on the database. Normally this will be the deployment script to set-up the database schema, or an upgrade script to modify the schema.
The commands can be in a file, file-handle, or be supplied in a scalar reference.
Returns any errors as a string, or an empty string if there where none.
describe_tables
Probes all tables in the database and returns a data structure describing the schema (columns and indexes) on each table. The structure is intended to be passed to is_deeply for comparison.
FIELDS
dsn
The database dsn string. It can be used to connect to the database.
dbh
The database dbh handle. It contains a connection to the database.
test_db
The test database. The details of it are dependent on the database specific subclass. For example in Test::DBIC::Versioned::MySQL it is an instance of Test::mysqld.