From db695c4aedbc6b9cb121dd7cacf9aa9e59180842 Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Tue, 20 Sep 2016 19:29:28 -0400 Subject: [PATCH] Bug 17324: Deal with branchcode NULL issue MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In a database update we alter the letter table, making a column (branchcode) not be able to contain NULL values. However if it already does, this SQL fails. So before changing the column we change the NULL values [Tue Sep 20 19:08:10 2016] updatedatabase.pl: DBD::mysql::db do failed: Invalid use of NULL value [for Statement " [Tue Sep 20 19:08:10 2016] updatedatabase.pl: ALTER TABLE letter MODIFY COLUMN branchcode varchar(10) NOT NULL DEFAULT '' [Tue Sep 20 19:08:10 2016] updatedatabase.pl: "] at /home/mtompset/kohaclone/installer/data/mysql/updatedatabase.pl line 12638. Reproduce: on an ubuntu 16.04 LTS machine with MySQL 5.7 install git koha development environment. ... git checkout -b my_3.18.x origin/3.18.x drop database koha_library; create database koha_library; quit; web install all sample data (ignore some issues with sample data, and one with mandatory) git checkout -b bug_17234 origin/master git bz apply 17292 git bz apply 17320 git bz apply 17260 git bz apply 17234 web install Two warning messages are expected output from upgrade process, but the above message is not. Signed-off-by: Chris Cormack Signed-off-by: Jonathan Druart Did not follow the test plan, but the changes make sense Signed-off-by: Brendan Gallagher (cherry picked from commit 0599ab00768e7d2ee487c6d02a0230d4a2a96d9e) Signed-off-by: Frédéric Demians (cherry picked from commit 3c2bd4ef3b1cc45d955940c1323c2b2c9b05cc4a) Signed-off-by: Julian Maurice --- installer/data/mysql/updatedatabase.pl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index e75a535d34..1e31435165 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -11606,6 +11606,9 @@ if ( CheckVersion($DBversion) ) { $DBversion = "3.22.06.004"; if ( CheckVersion($DBversion) ) { + $dbh->do(q{ + UPDATE letter SET branchcode='' WHERE branchcode IS NULL; + }); $dbh->do(q{ ALTER TABLE letter MODIFY COLUMN branchcode varchar(10) NOT NULL DEFAULT '' }); -- 2.39.5