Bug 31086: (QA follow-up) Improve atomicupdate to be more resilient
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 22 Jul 2022 09:05:55 +0000 (10:05 +0100)
committerTomas Cohen Arazi <tomascohen@theke.io>
Fri, 22 Jul 2022 17:19:18 +0000 (14:19 -0300)
We now populate the branchcode field with the first available branch on
the system if we find it to be NULL before we set the NOT NULL

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
installer/data/mysql/atomicupdate/bug_31086_do_not_allow_null_branchcode_in_reserves.pl

index 1c817a2..ea2c1a6 100755 (executable)
@@ -6,10 +6,18 @@ return {
     up => sub {
         my ($args) = @_;
         my ($dbh, $out) = @$args{qw(dbh out)};
+
+        # Ensure we have no NULL's in the branchcode field
+        $dbh->do(q{
+            UPDATE reserves SET branchcode = ( SELECT branchcode FROM branches LIMIT 1) WHERE branchode IS NULL;
+        });
+
+        # Set the NOT NULL configuration
         $dbh->do(q{
             ALTER TABLE reserves
             MODIFY COLUMN `branchcode` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'foreign key from the branches table defining which branch the patron wishes to pick this hold up at'
         });
+
         # Print useful stuff here
         say $out "Removed NULL option from branchcode for reserves";
     },