Bug 29341: Remove foreign keys on pseudonymized_transactions
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 17 Nov 2021 11:25:35 +0000 (12:25 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 19 Nov 2021 14:21:42 +0000 (15:21 +0100)
Behave like the statistics table and don't remove the code even if the
branch or patron's category is removed.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
installer/data/mysql/atomicupdate/bug_29341.pl [new file with mode: 0755]
installer/data/mysql/kohastructure.sql

diff --git a/installer/data/mysql/atomicupdate/bug_29341.pl b/installer/data/mysql/atomicupdate/bug_29341.pl
new file mode 100755 (executable)
index 0000000..d9abc04
--- /dev/null
@@ -0,0 +1,17 @@
+use Modern::Perl;
+
+return {
+    bug_number => "29341",
+    description => "Remove foreign keys on pseudonymized_transactions",
+    up => sub {
+        my ($args) = @_;
+        my ($dbh, $out) = @$args{qw(dbh out)};
+        for my $fk ( qw( pseudonymized_transactions_borrowers_ibfk_2 pseudonymized_transactions_borrowers_ibfk_3 pseudonymized_transactions_ibfk_1 ) ) {
+            if ( foreign_key_exists( 'pseudonymized_transactions', $fk ) ) {
+                $dbh->do(qq{
+                    ALTER TABLE pseudonymized_transactions DROP FOREIGN KEY $fk
+                });
+            }
+        }
+    },
+}
index ccf99df..d5768b9 100644 (file)
@@ -4230,10 +4230,7 @@ CREATE TABLE `pseudonymized_transactions` (
   PRIMARY KEY (`id`),
   KEY `pseudonymized_transactions_ibfk_1` (`categorycode`),
   KEY `pseudonymized_transactions_borrowers_ibfk_2` (`branchcode`),
-  KEY `pseudonymized_transactions_borrowers_ibfk_3` (`transaction_branchcode`),
-  CONSTRAINT `pseudonymized_transactions_borrowers_ibfk_2` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`),
-  CONSTRAINT `pseudonymized_transactions_borrowers_ibfk_3` FOREIGN KEY (`transaction_branchcode`) REFERENCES `branches` (`branchcode`),
-  CONSTRAINT `pseudonymized_transactions_ibfk_1` FOREIGN KEY (`categorycode`) REFERENCES `categories` (`categorycode`)
+  KEY `pseudonymized_transactions_borrowers_ibfk_3` (`transaction_branchcode`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 /*!40101 SET character_set_client = @saved_cs_client */;