DBIx::ThinSQL::Deploy(3)

NAME
DBIx::ThinSQL::Deploy - Deployment support for DBIx::ThinSQL

VERSION
0.0.9 (2013-12-13) development release.

SYNOPSIS
    use DBIx::ThinSQL;
    use DBIx::ThinSQL::Deploy;

    my $db = DBIx::ThinSQL->connect('dbi:SQLite:dbname=test');

    $db->deploy_sql($sql);
    $db->deploy_array($arrayref);
    $db->deploy_file('statements.sql');
    $db->deploy_dir('/location');

DESCRIPTION
DBIx::ThinSQL::Deploy adds very simple forward-only (re-)deployment support to DBIx::ThinSQL. The approach is extremely simple, based on the number of statements already executed. DBIx::ThinSQL::Deploy keeps track of what has been run through a table in your database called '_deploy'.

You should only ever add new statements to your sources!

METHODS

run_arrayref($arrayref)
    Runs each of the statements contained in $arrayref against the database. $arrayref is an array of hashrefs containing a single key/value pair. The key must be either sql or pl. Returns a two item list: the first value is the old deploy ID, the second value is the new deploy id.

run_sql($sql)
    Runs the statements in $sql against the database.

run_file($file)
    Runs the contents of $file (which must end in .sql or .pl) against the database.

run_dir($directory)
    Runs the SQL *.sql or Perl *.pl files found in $directory against the database.

last_deploy_id( [$app] )
    Returns the count of all deployment statements for application $app (or 'default') that have already been deployed.

deploy_sql($sql, [$app])
    Deploys the statements in $sql which have not already been deployed for application $app (if given, 'default' otherwise).

deploy_arrayref($arrayref, [$app])
    Deploys the statements in $arrayref which have not already been deployed for application $app (if given, 'default' otherwise). $arrayref is an array of hashrefs containing a single key/value pair. The key must be either sql or pl. Returns a two item list: the first value is the old deploy ID, the second value is the new deploy id.

deploy_file($file, [$app])
    Deploys the contents of $file (which must end in .sql or .pl) using deploy_arrayref().

deploy_dir($directory, [$app])
    Loads the SQL *.sql or Perl *.pl files found in $directory and deploys them using deploy_arrayref().

deployed_table_info([ $schema ])
    Returns a structure which you can save (any way you like) and use as the "table_info" parameter to the "new" method of DBIx::ThinSQL.

SEE ALSO
DBIx::ThinSQL

AUTHOR
Mark Lawrence <nomad@null.net>

COPYRIGHT AND LICENSE
Copyright (C) 2013 Mark Lawrence <nomad@null.net>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.