some fixes and more granular methods
This commit is contained in:
parent
6411388185
commit
11d4cd0ef0
1 changed files with 22 additions and 14 deletions
|
|
@ -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 (?,?,?)', {},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue