From dfc10b342c124bb79ef403dbeecf394ec9a1de9a Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 3 Nov 2020 16:45:33 +0100 Subject: [PATCH] Bug 26911: (bug 18936 follow-up) Remove invalid data before copying the circ rules To test: 1 - Checkout 19.11.x and reset_all 2 - Add a new patron category, itemtype, and branch to your system 3 - Create issuing rules using thise 3 values, and others 4 - Delete the new category, itemtype and branch 5 - Checkout master 6 - Restart_all 7 - updatedatabase 8 - you get errors 9 - repeat 1-4 10 - apply patch 11 - restart_all 12 - updatedatabase 13 - no errors! Signed-off-by: Nick Clemens --- installer/data/mysql/updatedatabase.pl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index f31a1c8fba..a881ad430f 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -20707,6 +20707,21 @@ if( CheckVersion( $DBversion ) ) { note ); + $dbh->do(q| + DELETE i FROM issuingrules i + LEFT JOIN itemtypes it ON i.itemtype=it.itemtype + WHERE it.itemtype IS NULL + |); + $dbh->do(q| + DELETE i FROM issuingrules i + LEFT JOIN branches b ON i.branchcode=b.branchcode + WHERE b.branchcode IS NULL + |); + $dbh->do(q| + DELETE i FROM issuingrules i + LEFT JOIN categories c ON i.categorycode=c.categorycode + WHERE c.categorycode IS NULL + |); if ( column_exists( 'issuingrules', 'categorycode' ) ) { foreach my $column ( @columns ) { $dbh->do(" -- 2.11.0