From 174d08328e811f527a4dad5c994718e72b4d0956 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 25 Nov 2015 13:49:51 +0000 Subject: [PATCH] Bug 15207: Avoid warnings when adding constraint course_reserves_ibfk_2 Bug 14205 added a new foreign key on the course_reserve table. As this dbrev has been backported to the stable version (3.20.x), the next dbrev should take care of this existing constraint to avoid warnings. Test plan: 1/ replace the modified dbrev with 3.21.00.XXX to make sure it will be executed 2/ Make sure you have the KEY and the FK on the course_reserves table: sql> alter table course_reserves add CONSTRAINT `course_reserves_ibfk_2` FOREIGN KEY (`ci_id`) REFERENCES `course_items` (`ci_id`) ON DELETE CASCADE ON UPDATE CASCADE; sql> alter table course_reserves ADD KEY `course_reserves_ibfk_2` (`ci_id`); 3/ SHOW CREATE TABLE course_reserves should show that the table is not in sync with the kohastructure.sql file 4/ Execute the dbrev 5/ SHOW CREATE TABLE course_reserves should show that the table is in sync with the kohastructure.sql file Repeat 4 and 5, confirm you don't get any error. Signed-off-by: Tomas Cohen Arazi --- installer/data/mysql/updatedatabase.pl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 3d52d39..65a2ee2 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -10801,9 +10801,17 @@ if ( CheckVersion($DBversion) ) { LEFT JOIN course_items USING(ci_id) WHERE course_items.ci_id IS NULL }); + + my ($print_error) = $dbh->{PrintError}; + $dbh->{RaiseError} = 0; + $dbh->{PrintError} = 0; + $dbh->do(q{ALTER TABLE course_reserves DROP FOREIGN KEY course_reserves_ibfk_2}); + $dbh->do(q{ALTER TABLE course_reserves DROP INDEX course_reserves_ibfk_2}); + $dbh->{PrintError} = $print_error; + $dbh->do(q{ ALTER IGNORE TABLE course_reserves - add CONSTRAINT course_reserves_ibfk_2 + ADD CONSTRAINT course_reserves_ibfk_2 FOREIGN KEY (ci_id) REFERENCES course_items (ci_id) ON DELETE CASCADE ON UPDATE CASCADE }); -- 2.6.3