Bug 14224: Check if the columns do not exist before creating them
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 1 Feb 2017 14:53:06 +0000 (15:53 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 28 Apr 2017 13:03:23 +0000 (09:03 -0400)
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
installer/data/mysql/atomicupdate/bug_14224-add_new_issue_columns.perl [new file with mode: 0644]
installer/data/mysql/atomicupdate/bug_14224-add_new_issue_columns.sql [deleted file]

diff --git a/installer/data/mysql/atomicupdate/bug_14224-add_new_issue_columns.perl b/installer/data/mysql/atomicupdate/bug_14224-add_new_issue_columns.perl
new file mode 100644 (file)
index 0000000..eaf8a98
--- /dev/null
@@ -0,0 +1,18 @@
+$DBversion = 'XXX';
+if( CheckVersion( $DBversion ) ) {
+    unless( column_exists( 'issues', 'note' ) ) {
+        $dbh->do(q|ALTER TABLE issues ADD note mediumtext default NULL AFTER onsite_checkout|);
+    }
+    unless( column_exists( 'issues', 'notedate' ) ) {
+        $dbh->do(q|ALTER TABLE issues ADD notedate datetime default NULL AFTER note|);
+    }
+    unless( column_exists( 'old_issues', 'note' ) ) {
+        $dbh->do(q|ALTER TABLE old_issues ADD note mediumtext default NULL AFTER onsite_checkout|);
+    }
+    unless( column_exists( 'old_issues', 'notedate' ) ) {
+        $dbh->do(q|ALTER TABLE old_issues ADD notedate datetime default NULL AFTER note|);
+    }
+
+    SetVersion( $DBversion );
+    print "Upgrade to $DBversion done (Bug 14224: Add column issues.note and issues.notedate)\n";
+}
diff --git a/installer/data/mysql/atomicupdate/bug_14224-add_new_issue_columns.sql b/installer/data/mysql/atomicupdate/bug_14224-add_new_issue_columns.sql
deleted file mode 100644 (file)
index 6ed41dc..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-ALTER IGNORE TABLE issues ADD `note` mediumtext default NULL AFTER `onsite_checkout`;
-ALTER IGNORE TABLE issues ADD `notedate` datetime default NULL AFTER `note`;
-ALTER IGNORE TABLE old_issues ADD `note` mediumtext default NULL AFTER `onsite_checkout`;
-ALTER IGNORE TABLE old_issues ADD `notedate` datetime default NULL AFTER `note`;