mostly complete upgrade system

This commit is contained in:
Graham Knop 2010-05-16 21:44:45 -05:00
parent cf92cb5a4f
commit 1a79d607af
13 changed files with 399 additions and 698 deletions

View file

@ -3,40 +3,18 @@ use strict;
use warnings;
use WebGUI::Config;
use WebGUI::Upgrade;
sub run {
my ($class, $configFile, $version, $file, $quiet) = @_;
my $config = WebGUI::Config->new($configFile, 1);
my $dsn = $config->get('dsn');
my $username = $config->get('dbuser');
my $password = $config->get('dbpass');
my $database = ( split /[:;]/msx, $dsn )[2];
my $hostname = 'localhost';
my $port = '3306';
while ( $dsn =~ /([^=;:]+)=([^;:]+)/msxg ) {
if ( $1 eq 'host' || $1 eq 'hostname' ) {
$hostname = $2;
}
elsif ( $1 eq 'db' || $1 eq 'database' || $1 eq 'dbname' ) {
$database = $2;
}
elsif ( $1 eq 'port' ) {
$port = $2;
}
}
my @command_line = (
'mysql',
'-h' . $hostname,
'-P' . $port,
$database,
'-u' . $username,
( $password ? '-p' . $password : () ),
'--default-character-set=utf8',
'--batch',
WebGUI::Upgrade->mysqlCommandLine($config),
'--execute=source ' . $file,
);
system { $command_line[0] } @command_line
and die "$!";
return 1;

View file

@ -104,6 +104,12 @@ sub _build_exports {
$dbh = WebGUI::Upgrade->dbhForConfig($subs->{config}->());
return $dbh;
},
sql => sub (@) {
my $sql = shift;
my $dbh = $subs->{dbh}->();
my $sth = $dbh->prepare($sql);
$sth->execute(@_);
},
version_tag => sub (;$) {
my $name = shift;
$check_cleanup->();
@ -161,7 +167,7 @@ sub _build_exports {
},
asset => sub ($) {
require WebGUI::Asset;
my $session = $subs->session->();
my $session = $subs->{session}->();
my $assetId = shift;
my $asset;
if ($session->id->valid($assetId)) {
@ -174,6 +180,11 @@ sub _build_exports {
}
return $asset;
},
clear_cache => sub () {
my $session = $subs->{session}->();
my $cache = $session->cache;
$cache->clear;
},
};
return $subs;
}