Bug 17813: (QA followup) Properly check DB structure before altering it
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 12 Jan 2017 15:09:42 +0000 (12:09 -0300)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 20 Jan 2017 13:59:42 +0000 (13:59 +0000)
This patch makes the atomic update use the new functions introduced by
bug 17234 for checking the structure before attempting to call ALTER
TABLE.

It checks for the column existence, and also if it is a primary key.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.perl [new file with mode: 0644]
installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.sql [deleted file]

diff --git a/installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.perl b/installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.perl
new file mode 100644 (file)
index 0000000..bb0e5f8
--- /dev/null
@@ -0,0 +1,14 @@
+$DBversion = "16.12.00.XXX";
+if ( CheckVersion($DBversion) ) {
+    unless (     column_exists( 'borrower_attributes', 'id' )
+             and index_exists( 'borrower_attributes', 'PRIMARY' ) )
+    {
+        $dbh->do(q{
+            ALTER TABLE `borrower_attributes`
+                ADD `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST
+        });
+    }
+
+    print "Upgrade to $DBversion done (Bug 17813: Table borrower_attributes needs a primary key\n";
+    SetVersion($DBversion);
+}
diff --git a/installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.sql b/installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.sql
deleted file mode 100644 (file)
index 04da55d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-ALTER TABLE `borrower_attributes` ADD `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
-
--- $DBversion = "16.12.00.XXX";
--- if(CheckVersion($DBversion)) {
---     $dbh->do(q{
---         ALTER TABLE `borrower_attributes` ADD `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST
---     });
---
---     print "Upgrade to $DBversion done (Bug 17813: Table borrower_attributes needs a primary key\n";
---     SetVersion ($DBversion);
--- }