fixing upgrade bugs
This commit is contained in:
parent
4c86a32b70
commit
938ccbb565
2 changed files with 39 additions and 34 deletions
|
|
@ -39,12 +39,13 @@ $macros->{GroupDelete} = "GroupDelete";
|
||||||
$macros->{SI} = "SI_scaledImage";
|
$macros->{SI} = "SI_scaledImage";
|
||||||
$conf->set("macros"=>$macros);
|
$conf->set("macros"=>$macros);
|
||||||
my $wobjects = $conf->get("wobjects");
|
my $wobjects = $conf->get("wobjects");
|
||||||
foreach my $i ($wobjects) {
|
my @newWobjects = qw(DataForm);
|
||||||
if ($wobjects->[$i] eq "MailForm") {
|
foreach (@{$wobjects}) {
|
||||||
$wobjects->[$i] = "DataForm";
|
unless ($_ eq "MailForm") {
|
||||||
|
push(@newWobjects, $_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$conf->set("wobjects"=>$wobjects);
|
$conf->set("wobjects"=>\@newWobjects);
|
||||||
$conf->set("searchAndReplace"=>{ ":)" => "<img src='/extras/smileys/smile01.gif' align='absMiddle' border='0'>",
|
$conf->set("searchAndReplace"=>{ ":)" => "<img src='/extras/smileys/smile01.gif' align='absMiddle' border='0'>",
|
||||||
":-)" => "<img src='/extras/smileys/smile01.gif' align='absMiddle' border='0'>",
|
":-)" => "<img src='/extras/smileys/smile01.gif' align='absMiddle' border='0'>",
|
||||||
":(" => "<img src='/extras/smileys/smile02.gif' align='absMiddle' border='0'>",
|
":(" => "<img src='/extras/smileys/smile02.gif' align='absMiddle' border='0'>",
|
||||||
|
|
|
||||||
|
|
@ -123,26 +123,33 @@ if (!($^O =~ /^Win/i) && $> != 0 && !$override) {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$|=1;
|
## Globals
|
||||||
my ($upgrade, @files, $file, $dbh, $config, $dir, %upgrade, %config);
|
|
||||||
|
|
||||||
|
$| = 1;
|
||||||
|
our $perl = $^X;
|
||||||
|
our $slash;
|
||||||
|
if ($^O =~ /^Win/i) {
|
||||||
|
$slash = "\\";
|
||||||
|
} else {
|
||||||
|
$slash = "/";
|
||||||
|
}
|
||||||
|
our $upgradesPath = $webguiRoot.$slash."docs".$slash."upgrades".$slash;
|
||||||
|
our $configsPath = $webguiRoot.$slash."etc".$slash;
|
||||||
|
our (%upgrade, %config);
|
||||||
|
|
||||||
|
|
||||||
|
## Find upgrade files.
|
||||||
|
|
||||||
print "\nLooking for upgrade files...\n" unless ($quiet);
|
print "\nLooking for upgrade files...\n" unless ($quiet);
|
||||||
if ($^O =~ /^Win/i) {
|
opendir(DIR,$upgradesPath) or die "Couldn't open $upgradesPath\n";
|
||||||
$dir = $webguiRoot."\\docs\\upgrades\\";
|
my @files = readdir(DIR);
|
||||||
} else {
|
|
||||||
$dir = $webguiRoot."/docs/upgrades/";
|
|
||||||
}
|
|
||||||
opendir(DIR,$dir) or die "Couldn't open $dir\n";
|
|
||||||
@files = readdir(DIR);
|
|
||||||
closedir(DIR);
|
closedir(DIR);
|
||||||
foreach $file (@files) {
|
foreach my $file (@files) {
|
||||||
if ($file =~ /upgrade_(\d+\.\d+\.\d+)-(\d+\.\d+\.\d+)\.(\w+)/) {
|
if ($file =~ /upgrade_(\d+\.\d+\.\d+)-(\d+\.\d+\.\d+)\.(\w+)/) {
|
||||||
if (checkVersion($1)) {
|
if (checkVersion($1)) {
|
||||||
$upgrade{$1}{dir} = $dir;
|
|
||||||
if ($3 eq "sql") {
|
if ($3 eq "sql") {
|
||||||
print "\tFound upgrade script from $1 to $2.\n" unless ($quiet);
|
print "\tFound upgrade script from $1 to $2.\n" unless ($quiet);
|
||||||
$upgrade{$1}{sql} = $dir.$file;
|
$upgrade{$1}{sql} = $file;
|
||||||
} elsif ($3 eq "pl") {
|
} elsif ($3 eq "pl") {
|
||||||
print "\tFound upgrade executable from $1 to $2.\n" unless ($quiet);
|
print "\tFound upgrade executable from $1 to $2.\n" unless ($quiet);
|
||||||
$upgrade{$1}{pl} = $file;
|
$upgrade{$1}{pl} = $file;
|
||||||
|
|
@ -153,23 +160,18 @@ foreach $file (@files) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## Find site configs.
|
||||||
|
|
||||||
print "\nGetting site configs...\n" unless ($quiet);
|
print "\nGetting site configs...\n" unless ($quiet);
|
||||||
if ($^O =~ /^Win/i) {
|
opendir (DIR,$configsPath) or die "Can't open $configsPath\n";
|
||||||
$dir = $webguiRoot."\\etc\\";
|
my @files=readdir(DIR);
|
||||||
} else {
|
|
||||||
$dir = $webguiRoot."/etc/";
|
|
||||||
}
|
|
||||||
opendir (DIR,$dir) or die "Can't open $dir\n";
|
|
||||||
@files=readdir(DIR);
|
|
||||||
closedir(DIR);
|
closedir(DIR);
|
||||||
foreach $file (@files) {
|
foreach my $file (@files) {
|
||||||
if ($file =~ /(.*?)\.conf$/ && $file ne "some_other_site.conf") {
|
if ($file =~ /(.*?)\.conf$/ && $file ne "some_other_site.conf") {
|
||||||
print "\tFound $file.\n" unless ($quiet);
|
print "\tFound $file.\n" unless ($quiet);
|
||||||
$config{$file}{configFile} = $dir.$file;
|
$config{$file}{configFile} = $file;
|
||||||
my $config = Parse::PlainConfig->new('DELIM' => '=',
|
my $config = Parse::PlainConfig->new('DELIM' => '=',
|
||||||
'FILE' => $config{$file}{configFile},
|
'FILE' => $configsPath.$config{$file}{configFile},
|
||||||
'PURGE' => 1);
|
'PURGE' => 1);
|
||||||
$config{$file}{dsn} = $config->get('dsn');
|
$config{$file}{dsn} = $config->get('dsn');
|
||||||
$config{$file}{dsn} =~ /^DBI\:(\w+)\:(\w+)(\:(.*)|)$/;
|
$config{$file}{dsn} =~ /^DBI\:(\w+)\:(\w+)(\:(.*)|)$/;
|
||||||
|
|
@ -181,7 +183,7 @@ foreach $file (@files) {
|
||||||
$config{$file}{mysqlCLI} = $config->get('mysqlCLI');
|
$config{$file}{mysqlCLI} = $config->get('mysqlCLI');
|
||||||
$config{$file}{mysqlDump} = $config->get('mysqlDump');
|
$config{$file}{mysqlDump} = $config->get('mysqlDump');
|
||||||
$config{$file}{backupPath} = $config->get('backupPath');
|
$config{$file}{backupPath} = $config->get('backupPath');
|
||||||
$dbh = DBI->connect($config{$file}{dsn},$config{$file}{dbuser},$config{$file}{dbpass});
|
my $dbh = DBI->connect($config{$file}{dsn},$config{$file}{dbuser},$config{$file}{dbpass});
|
||||||
($config{$file}{version}) = WebGUI::SQL->quickArray("select webguiVersion from webguiVersion
|
($config{$file}{version}) = WebGUI::SQL->quickArray("select webguiVersion from webguiVersion
|
||||||
order by dateApplied desc, webguiVersion desc limit 1",$dbh);
|
order by dateApplied desc, webguiVersion desc limit 1",$dbh);
|
||||||
$dbh->disconnect;
|
$dbh->disconnect;
|
||||||
|
|
@ -198,20 +200,20 @@ print "\nREADY TO BEGIN UPGRADES\n" unless ($quiet);
|
||||||
|
|
||||||
my $notRun = 1;
|
my $notRun = 1;
|
||||||
|
|
||||||
foreach $config (keys %config) {
|
foreach my $config (keys %config) {
|
||||||
my $clicmd = $config{$config}{mysqlCLI} || $mysql;
|
my $clicmd = $config{$config}{mysqlCLI} || $mysql;
|
||||||
my $dumpcmd = $config{$config}{mysqlDump} || $mysqldump;
|
my $dumpcmd = $config{$config}{mysqlDump} || $mysqldump;
|
||||||
my $backupTo = $config{$config}{backupPath} || $backupDir;
|
my $backupTo = $config{$config}{backupPath} || $backupDir;
|
||||||
mkdir($backupTo);
|
mkdir($backupTo);
|
||||||
while ($upgrade{$config{$config}{version}}{sql} ne "") {
|
while ($upgrade{$config{$config}{version}}{sql} ne "") {
|
||||||
$upgrade = $upgrade{$config{$config}{version}}{from};
|
my $upgrade = $upgrade{$config{$config}{version}}{from};
|
||||||
unless ($skipBackup) {
|
unless ($skipBackup) {
|
||||||
print "\n".$config{$config}{db}." ".$upgrade{$upgrade}{from}."-".$upgrade{$upgrade}{to}."\n" unless ($quiet);
|
print "\n".$config{$config}{db}." ".$upgrade{$upgrade}{from}."-".$upgrade{$upgrade}{to}."\n" unless ($quiet);
|
||||||
print "\tBacking up $config{$config}{db} ($upgrade{$upgrade}{from})..." unless ($quiet);
|
print "\tBacking up $config{$config}{db} ($upgrade{$upgrade}{from})..." unless ($quiet);
|
||||||
my $cmd = $dumpcmd." -u".$config{$config}{dbuser}." -p".$config{$config}{dbpass};
|
my $cmd = $dumpcmd." -u".$config{$config}{dbuser}." -p".$config{$config}{dbpass};
|
||||||
$cmd .= " --host=".$config{$config}{host} if ($config{$config}{host});
|
$cmd .= " --host=".$config{$config}{host} if ($config{$config}{host});
|
||||||
$cmd .= " --add-drop-table --databases ".$config{$config}{db}." > "
|
$cmd .= " --add-drop-table --databases ".$config{$config}{db}." > "
|
||||||
.$backupTo."/".$config{$config}{db}."_".$upgrade{$upgrade}{from}.".sql";
|
.$backupTo.$slash.$config{$config}{db}."_".$upgrade{$upgrade}{from}.".sql";
|
||||||
unless (system($cmd)) {
|
unless (system($cmd)) {
|
||||||
print "OK\n" unless ($quiet);
|
print "OK\n" unless ($quiet);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -221,18 +223,20 @@ foreach $config (keys %config) {
|
||||||
print "\tUpgrading to ".$upgrade{$upgrade}{to}."..." unless ($quiet);
|
print "\tUpgrading to ".$upgrade{$upgrade}{to}."..." unless ($quiet);
|
||||||
my $cmd = $clicmd." -u".$config{$config}{dbuser}." -p".$config{$config}{dbpass};
|
my $cmd = $clicmd." -u".$config{$config}{dbuser}." -p".$config{$config}{dbpass};
|
||||||
$cmd .= " --host=".$config{$config}{host} if ($config{$config}{host});
|
$cmd .= " --host=".$config{$config}{host} if ($config{$config}{host});
|
||||||
$cmd .= " --database=".$config{$config}{db}." < ".$upgrade{$upgrade}{sql};
|
$cmd .= " --database=".$config{$config}{db}." < ".$upgradesPath.$upgrade{$upgrade}{sql};
|
||||||
unless (system($cmd)) {
|
unless (system($cmd)) {
|
||||||
print "OK\n" unless ($quiet);
|
print "OK\n" unless ($quiet);
|
||||||
} else {
|
} else {
|
||||||
print "Failed!\n" unless ($quiet);
|
print "Failed!\n" unless ($quiet);
|
||||||
}
|
}
|
||||||
if ($upgrade{$upgrade}{pl} ne "") {
|
if ($upgrade{$upgrade}{pl} ne "") {
|
||||||
my $cmd = "cd ../docs/upgrades;perl ".$upgrade{$upgrade}{pl}." --configFile=".$config;
|
chdir($upgradesPath);
|
||||||
|
my $cmd = $perl." ".$upgrade{$upgrade}{pl}." --configFile=".$config;
|
||||||
$cmd .= " --quiet" if ($quiet);
|
$cmd .= " --quiet" if ($quiet);
|
||||||
if (system($cmd)) {
|
if (system($cmd)) {
|
||||||
print "\tProcessing upgrade executable failed!\n";
|
print "\tProcessing upgrade executable failed! $!\n";
|
||||||
}
|
}
|
||||||
|
chdir("..".$slash."sbin");
|
||||||
}
|
}
|
||||||
$config{$config}{version} = $upgrade{$upgrade}{to};
|
$config{$config}{version} = $upgrade{$upgrade}{to};
|
||||||
$notRun = 0;
|
$notRun = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue