diff options
author | franck cuny <franck@lumberjaph.net> | 2011-02-13 14:15:23 +0100 |
---|---|---|
committer | franck cuny <franck@lumberjaph.net> | 2011-02-13 14:15:23 +0100 |
commit | 412587ddac4ba483d06bef9a8a89c07b4d3cf44b (patch) | |
tree | 3b58b44657d4e3c2817228a7984f2436e90f1244 /scripts/upgrade_db.pl | |
parent | Merge branch 'refactor_builder' (diff) | |
parent | update templates to show informations about running tasks (diff) | |
download | jitterbug-412587ddac4ba483d06bef9a8a89c07b4d3cf44b.tar.gz |
resolve merge conflict
Diffstat (limited to '')
-rwxr-xr-x | scripts/upgrade_db.pl | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/scripts/upgrade_db.pl b/scripts/upgrade_db.pl new file mode 100755 index 0000000..00f6306 --- /dev/null +++ b/scripts/upgrade_db.pl @@ -0,0 +1,70 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +use lib 'lib'; + +use YAML::Syck; +use DBIx::Class::DeploymentHandler; +use SQL::Translator; + +my $config = shift; +die "need configuration file" unless $config; + +my $schema = 'jitterbug::Schema'; + +my $version = eval "use $schema; $schema->VERSION" or die $@; + +print "processing version $version of $schema...\n"; + +my $jitterbug_conf = LoadFile($config); +my $dbix_conf = $jitterbug_conf->{plugins}->{DBIC}->{schema}; +my $s = $schema->connect( @{ $dbix_conf->{connect_info} } ); + +my $dh = DBIx::Class::DeploymentHandler->new( + { + schema => $s, + databases => [qw/ SQLite PostgreSQL MySQL /], + sql_translator_args => { add_drop_table => 0, }, + } +); + +print "generating deployment script\n"; +$dh->prepare_install; + +if ( $version > 1 ) { + print "generating upgrade script\n"; + $dh->prepare_upgrade( + { + from_version => $version - 1, + to_version => $version, + version_set => [ $version - 1, $version ], + } + ); + + print "generating downgrade script\n"; + $dh->prepare_downgrade( + { + from_version => $version, + to_version => $version - 1, + version_set => [ $version, $version - 1 ], + } + ); +} + +# print "generating graph\n"; + +# my $trans = SQL::Translator->new( +# parser => 'SQL::Translator::Parser::DBIx::Class', +# parser_args => { package => $schema }, +# producer_args => { +# show_constraints => 1, +# show_datatypes => 1, +# show_sizes => 1, +# show_fk_only => 0, +# } +# ); + +# $trans->translate; + +print "done\n"; |