From: Arthur Axel 'fREW' Schmidt Date: Fri, 2 Apr 2010 03:35:05 +0000 (-0500) Subject: Doc for main class X-Git-Tag: v0.001000_01~21 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=e9c19a984f02a1978d1b27cc7868e97a292d1d45;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git Doc for main class --- diff --git a/lib/DBIx/Class/DeploymentHandler.pm b/lib/DBIx/Class/DeploymentHandler.pm index 389d6e1..d679d5b 100644 --- a/lib/DBIx/Class/DeploymentHandler.pm +++ b/lib/DBIx/Class/DeploymentHandler.pm @@ -32,4 +32,105 @@ __PACKAGE__->meta->make_immutable; __END__ +=SYNOPSIS + + use aliased 'DBIx::Class::DeploymentHandler' => 'DH'; + my $s = My::Schema->connect(...); + + my $dh = DH->new({ + schema => $s, + databases => 'SQLite', + sqltargs => { add_drop_table => 0 }, + }); + + $dh->prepare_install; + + $dh->install; + +or for upgrades: + + use aliased 'DBIx::Class::DeploymentHandler' => 'DH'; + my $s = My::Schema->connect(...); + + my $dh = DH->new({ + schema => $s, + databases => 'SQLite', + sqltargs => { add_drop_table => 0 }, + }); + + $dh->prepare_upgrade(1, 2); + + $dh->upgrade; + +=head1 DESCRIPTION + +C is, as it's name suggests, a tool for +deploying and upgrading databases with L. It is designed to be +much more flexible than L, hence the use of +L and lots of roles. + +C itself is just a recommended set of roles +that we think will not only work well for everyone, but will also yeild the +best overall mileage. Each role it uses has it's own nuances and +documentation, so I won't describe all of them here, but here are a few of the +major benefits over how L worked (and +L tries to maintain compatibility +with): + +=over + +=over + +=item * + +Downgrades in addition to upgrades. + +=item * + +Multiple sql files files per upgrade/downgrade/install. + +=item * + +Perl scripts allowed for upgrade/downgrade/install. + +=item * + +Just one set of files needed for upgrade, unlike before where one might need +to generate C, which is just silly. + +=item * + +And much, much more! + +=back + +That's really just a taste of some of the differences. Check out each role for +all the details. + +=head1 WHERE IS ALL THE DOC?! + +C extends +L, so that's probably the first place to +look when you are trying to figure out how everything works. + +Next would be to look at all the roles that fill in the blanks that +L expects to be filled. They would be +L, +L, +L, and +L. + +=method prepare_version_storage_install + + $dh->prepare_version_storage_install + +Creates the needed C<.sql> file to install the version storage and not the rest +of the tables + +=method install_version_storage + + $dh->install_version_storage + +Install the version storage and not the rest of the tables + vim: ts=2 sw=2 expandtab