some fixes and more granular methods

This commit is contained in:
Graham Knop 2010-03-19 10:38:17 -05:00
parent 6411388185
commit 11d4cd0ef0

View file

@ -21,16 +21,17 @@ sub upgradeSites {
$class->upgradeSite($configFile, $quiet); $class->upgradeSite($configFile, $quiet);
} }
catch { catch {
print "Error upgrading $bareFilename: $@\n"; print "Error upgrading $bareFilename: $_\n";
} }
} }
return 1;
} }
sub upgradeSite { sub upgradeSite {
my $class = shift; my $class = shift;
my ($configFile, $quiet) = @_; my ($configFile, $quiet) = @_;
my $fromVersion = $class->getCurrentVersion($configFile); my $fromVersion = $class->getCurrentVersion($configFile);
my @steps = $class->calcUpgradePath($fromVersion, $WebGUI::Version); my @steps = $class->calcUpgradePath($fromVersion, $WebGUI::VERSION);
for my $step ( @steps ) { for my $step ( @steps ) {
$class->runUpgradeStep($configFile, $step, $quiet); $class->runUpgradeStep($configFile, $step, $quiet);
} }
@ -96,28 +97,35 @@ sub runUpgradeStep {
my $filename = File::Spec->catfile($upgradesDir, $upgradeFile); my $filename = File::Spec->catfile($upgradesDir, $upgradeFile);
next next
unless -f $filename; unless -f $filename;
my ($extension) = $filename =~ /\.([^.]+)$/; $class->runUpgradeFile($configFile, $version, $filename, $quiet);
next
unless $extension;
my $package = 'WebGUI::Upgrade::File::' . $extension;
if ( try { WebGUI::Pluggable::load($package) } && $package->can('run') ) {
$package->run($configFile, $version, $filename, $quiet);
}
else {
warn "Don't know how to use $extension upgrade file\n";
}
} }
closedir $dh; closedir $dh;
$class->markVersionUpgrade($configFile, $version); $class->markVersionUpgrade($configFile, $version);
} }
sub runUpgradeFile {
my $class = shift;
my ($configFile, $version, $filename, $quiet) = @_;
my ($extension) = $filename =~ /\.([^.]+)$/;
return
unless $extension;
my $package = 'WebGUI::Upgrade::File::' . $extension;
if ( try { WebGUI::Pluggable::load($package) } && $package->can('run') ) {
return $package->run($configFile, $version, $filename, $quiet);
}
warn "Don't know how to use $extension upgrade file\n";
return;
}
sub markVersionUpgrade { sub markVersionUpgrade {
my $class = shift; my $class = shift;
my $configFile = shift; my $configFile = shift;
my $version = shift; my $version = shift;
my $dbh = $class->dbhForConfig($configFile); my $config = WebGUI::Config->new($configFile, 1);
my $dbh = $class->dbhForConfig($config);
$dbh->do( $dbh->do(
'INSERT INTO webguiVersion (webguiVersion, versionType, dateApplied) VALUES (?,?,?)', {}, 'INSERT INTO webguiVersion (webguiVersion, versionType, dateApplied) VALUES (?,?,?)', {},