diff --git a/docs/migration.txt b/docs/migration.txt
index 1cf89f35a..46a5f3cd3 100644
--- a/docs/migration.txt
+++ b/docs/migration.txt
@@ -432,3 +432,13 @@ $f->text(name=>"this",id==>"myownpersonalid");
See WebGUI::HTMLForm and WebGUI::Form::Control for additional information.
+
+5.19 SQL Files For Upgrades Depricated
+
+Starting with WebGUI 6.7.0 .sql files will no longer be used in core upgrades
+of WebGUI sites. We also suggest not using them for upgrades of custom code.
+The reason is that the database is becoming very complex, and it's easier to
+introduce errors to the database when modifying it directly rather than using
+the APIs.
+
+
diff --git a/docs/upgrades/upgrade_6.6.5-6.7.0.pl b/docs/upgrades/upgrade_6.6.5-6.7.0.pl
index 25aa7afff..2295b38df 100644
--- a/docs/upgrades/upgrade_6.6.5-6.7.0.pl
+++ b/docs/upgrades/upgrade_6.6.5-6.7.0.pl
@@ -21,20 +21,47 @@ GetOptions(
WebGUI::Session::open("../..",$configFile);
+WebGUI::SQL->write("insert into webguiVersion values ('6.7.0','upgrade',unix_timestamp())");
+
+giveSnippetsMimeTypes();
addAssetVersioning();
updateConfigFile();
insertHelpTemplate();
-insertXSLTSheets();
-insertSyndicatedContentTemplate();
-WebGUI::Group->new('9')->delete;
-updateDefaultSurveyViewTemplate();
+makeSyndicatedContentChanges();
+removeOldThemeSystem();
+addSectionsToSurveys();
WebGUI::Session::close();
#-------------------------------------------------
-sub updateDefaultSurveyViewTemplate {
- print "\tUpdating Default Survey View template.\n" unless ($quiet);
+sub giveSnippetsMimeTypes {
+ print "\tAllowing snippets to handle mime types.\n" unless ($quiet);
+ WebGUI::SQL->write("alter table snippet add column mimeType varchar(50) not null default 'text/html'");
+}
+
+#-------------------------------------------------
+sub removeOldThemeSystem {
+ print "\tRemoving the old theme system.\n" unless ($quiet);
+ WebGUI::SQL->write("drop table theme");
+ WebGUI::SQL->write("drop table themeComponent");
+ WebGUI::Group->new('9')->delete;
+}
+
+#-------------------------------------------------
+sub makeSyndicatedContentChanges {
+ print "\tMaking changes to the syndicated content asset.\n" unless ($quiet);
+ WebGUI::SQL->write("alter table SyndicatedContent add column displayMode varchar(20) not null default 'interleaved'");
+ WebGUI::SQL->write("alter table SyndicatedContent add column hasTerms varchar(255) not null");
+ insertXSLTSheets();
+ insertSyndicatedContentTemplate();
+}
+
+#-------------------------------------------------
+sub addSectionsToSurveys {
+ print "\tAdding sections to Surveys.\n" unless ($quiet);
+ WebGUI::SQL->write("alter table Survey_question add column Survey_sectionId varchar(22) null");
+ WebGUI::SQL->write("create table Survey_section (Survey_id varchar(22) null, Survey_sectionId varchar(22) not null, sectionName text null, sequenceNumber int(11) not null default 1, primary key (Survey_sectionId))");
my $template = q|
@@ -168,7 +195,7 @@ sub updateConfigFile {
#-------------------------------------------------
sub addAssetVersioning {
print "\tMaking changes for asset versioning\n" unless ($quiet);
- WebGUI::SQL->write("insert into settings ('autoCommit','1')");
+ WebGUI::SQL->write("insert into settings values ('autoCommit','1')");
WebGUI::SQL->write("create table assetVersionTag (
tagId varchar(22) not null primary key,
name varchar(255) not null,
diff --git a/docs/upgrades/upgrade_6.6.5-6.7.0.sql b/docs/upgrades/upgrade_6.6.5-6.7.0.sql
deleted file mode 100644
index c0ee2f756..000000000
--- a/docs/upgrades/upgrade_6.6.5-6.7.0.sql
+++ /dev/null
@@ -1,8 +0,0 @@
-insert into webguiVersion values ('6.7.0','upgrade',unix_timestamp());
-alter table SyndicatedContent add column displayMode varchar(20) not null default 'interleaved';
-alter table SyndicatedContent add column hasTerms varchar(255) not null;
-alter table snippet add column mimeType varchar(50) not null default 'text/html';
-drop table theme;
-drop table themeComponent;
-alter table Survey_question add column Survey_sectionId varchar(22) null;
-create table Survey_section (Survey_id varchar(22) null, Survey_sectionId varchar(22) not null, sectionName text null, sequenceNumber int(11) not null default 1, primary key (Survey_sectionId));
diff --git a/sbin/upgrade.pl b/sbin/upgrade.pl
index 7e19055f4..567461589 100644
--- a/sbin/upgrade.pl
+++ b/sbin/upgrade.pl
@@ -227,7 +227,7 @@ foreach my $config (keys %config) {
my $dumpcmd = $config{$config}{mysqlDump} || $mysqldump;
my $backupTo = $config{$config}{backupPath} || $backupDir;
mkdir($backupTo);
- while ($upgrade{$config{$config}{version}}{sql} ne "") {
+ while ($upgrade{$config{$config}{version}}{sql} ne "" || $upgrade{$config{$config}{version}}{pl} ne "") {
my $upgrade = $upgrade{$config{$config}{version}}{from};
unless ($skipBackup) {
print "\n".$config{$config}{db}." ".$upgrade{$upgrade}{from}."-".$upgrade{$upgrade}{to}."\n" unless ($quiet);
@@ -244,17 +244,19 @@ foreach my $config (keys %config) {
fatalError();
}
}
- print "\tUpgrading to ".$upgrade{$upgrade}{to}."..." unless ($quiet);
- my $cmd = $clicmd." -u".$config{$config}{dbuser}." -p".$config{$config}{dbpass};
- $cmd .= " --host=".$config{$config}{host} if ($config{$config}{host});
- $cmd .= " --port=".$config{$config}{port} if ($config{$config}{port});
- $cmd .= " --database=".$config{$config}{db}." < ".$upgrade{$upgrade}{sql};
- unless (system($cmd)) {
- print "OK\n" unless ($quiet);
- } else {
- print "Failed!\n" unless ($quiet);
- fatalError();
- }
+ if ($upgrade{$upgrade}{sql} ne "") {
+ print "\tUpgrading to ".$upgrade{$upgrade}{to}."..." unless ($quiet);
+ my $cmd = $clicmd." -u".$config{$config}{dbuser}." -p".$config{$config}{dbpass};
+ $cmd .= " --host=".$config{$config}{host} if ($config{$config}{host});
+ $cmd .= " --port=".$config{$config}{port} if ($config{$config}{port});
+ $cmd .= " --database=".$config{$config}{db}." < ".$upgrade{$upgrade}{sql};
+ unless (system($cmd)) {
+ print "OK\n" unless ($quiet);
+ } else {
+ print "Failed!\n" unless ($quiet);
+ fatalError();
+ }
+ }
if ($upgrade{$upgrade}{pl} ne "") {
my $cmd = $perl." ".$upgrade{$upgrade}{pl}." --configFile=".$config;
$cmd .= " --quiet" if ($quiet);