Test-DBIC-Versioned NAME Test::DBIC::Versioned - Test upgrade scripts for DBIx::Class::Schema::Versioned 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. LICENSE AND COPYRIGHT Copyright (C) 2014 "spudsoup" This program is released under the Artistic License version 2.0