Bug 29409: Check for existence of constraint before deletion
authorNick Clemens <nick@bywatersolutions.com>
Wed, 3 Nov 2021 16:51:09 +0000 (16:51 +0000)
committerArthur Suzuki <arthur.suzuki@biblibre.com>
Mon, 14 Nov 2022 14:17:59 +0000 (15:17 +0100)
Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 012e5bff1c79d8a2cc580a43c832ace5e51bec79)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b2f44c61411fe051097570fe7d98591e628b0f01)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
installer/data/mysql/updatedatabase.pl

index 40cc2b2..bf8fc0a 100755 (executable)
@@ -23186,10 +23186,11 @@ $DBversion = '20.06.00.058';
 if( CheckVersion( $DBversion ) ) {
 
     # Adding the ON DELETE CASCASE ON UPDATE CASCADE, in case it's missing (from 9016 - 3.15.00.039)
-    $dbh->do( q{
-        ALTER TABLE letter DROP FOREIGN KEY message_transport_type_fk
-    } );
-
+    if ( foreign_key_exists( 'letter', 'message_transport_type_fk' ) ) {
+        $dbh->do( q{
+            ALTER TABLE letter DROP FOREIGN KEY message_transport_type_fk
+        } );
+    }
     $dbh->do( q{
         ALTER TABLE letter ADD CONSTRAINT message_transport_type_fk FOREIGN KEY (message_transport_type) REFERENCES message_transport_types(message_transport_type) ON DELETE CASCADE ON UPDATE CASCADE
     } );