From 37d5278ba26206b8943f373a8207882298662028 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 2 Dec 2021 12:12:10 +0100 Subject: [PATCH] Bug 29605: Missing FK on tmp_holdsqueue.borrowernumber (tmp_holdsqueue_ibfk_3) Bad copy paste on the foreign_key_exists condition --- installer/data/mysql/atomicupdate/bug_29605.pl | 16 ++++++++++++++-- installer/data/mysql/db_revs/210600022.pl | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/installer/data/mysql/atomicupdate/bug_29605.pl b/installer/data/mysql/atomicupdate/bug_29605.pl index 4a2cfe022e1..a18e8ecccc0 100755 --- a/installer/data/mysql/atomicupdate/bug_29605.pl +++ b/installer/data/mysql/atomicupdate/bug_29605.pl @@ -2,10 +2,10 @@ use Modern::Perl; return { bug_number => "29605", - description => "Add language_script_mapping primary key", + description => "Resync DB structure for existing installations", up => sub { my ($args) = @_; - my ($dbh) = @$args{qw(dbh)}; + my ($dbh, $out) = @$args{qw(dbh out)}; if ( !primary_key_exists( 'language_script_mapping', 'language_subtag' ) and index_exists( 'language_script_mapping', 'language_subtag' ) ) { @@ -22,6 +22,18 @@ return { ALTER TABLE language_script_mapping ADD PRIMARY KEY `language_subtag` (`language_subtag`); }); + + say $out "Added missing primary key on language_script_mapping" } + + unless ( foreign_key_exists('tmp_holdsqueue', 'tmp_holdsqueue_ibfk_3') ) { + $dbh->do(q{ + ALTER TABLE tmp_holdsqueue + ADD CONSTRAINT `tmp_holdsqueue_ibfk_3` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE + }); + + say $out "Added missing foreign key on tmp_holdsqueue" + } + }, } diff --git a/installer/data/mysql/db_revs/210600022.pl b/installer/data/mysql/db_revs/210600022.pl index 12f52eac154..f3a7c692e15 100755 --- a/installer/data/mysql/db_revs/210600022.pl +++ b/installer/data/mysql/db_revs/210600022.pl @@ -12,7 +12,7 @@ return { ADD CONSTRAINT `tmp_holdsqueue_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE }); } - unless ( foreign_key_exists('tmp_holdsqueue', 'tmp_holdsqueue_ibfk_2') ) { + unless ( foreign_key_exists('tmp_holdsqueue', 'tmp_holdsqueue_ibfk_3') ) { $dbh->do(q{ ALTER TABLE tmp_holdsqueue ADD CONSTRAINT `tmp_holdsqueue_ibfk_3` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE -- 2.25.1