From 0c520f13f3cc2db00f880895cb9332ffb1653d3a Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 12 Jan 2017 12:09:42 -0300 Subject: [PATCH] Bug 17813: (QA followup) Properly check DB structure before altering it 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 Signed-off-by: Jonathan Druart --- .../atomicupdate/bug_17813_borrower_attributes_pk.perl | 14 ++++++++++++++ .../atomicupdate/bug_17813_borrower_attributes_pk.sql | 11 ----------- 2 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.perl delete mode 100644 installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.sql 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 index 0000000..bb0e5f8 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.perl @@ -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 index 04da55d..0000000 --- a/installer/data/mysql/atomicupdate/bug_17813_borrower_attributes_pk.sql +++ /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); --- } -- 2.1.4