From 2dc1e1404b7ad048ccb2e0ae778dda96d794eaa0 Mon Sep 17 00:00:00 2001 From: demeritcowboy Date: Tue, 6 Dec 2022 07:51:29 -0500 Subject: [PATCH] prevent deletion of current revisions --- CRM/Upgrade/Incremental/php/FiveFiftySeven.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CRM/Upgrade/Incremental/php/FiveFiftySeven.php b/CRM/Upgrade/Incremental/php/FiveFiftySeven.php index 67bcc73df2..88939c3808 100644 --- a/CRM/Upgrade/Incremental/php/FiveFiftySeven.php +++ b/CRM/Upgrade/Incremental/php/FiveFiftySeven.php @@ -37,7 +37,14 @@ class CRM_Upgrade_Incremental_php_FiveFiftySeven extends CRM_Upgrade_Incremental */ public function upgrade_5_57_alpha1($rev): void { $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev); + $this->addTask('Fix dangerous delete cascade', 'fixDeleteCascade'); $this->addExtensionTask('Enable SearchKit extension', ['org.civicrm.search_kit'], 1100); } + public static function fixDeleteCascade($ctx): bool { + CRM_Core_BAO_SchemaHandler::safeRemoveFK('civicrm_activity', 'FK_civicrm_activity_original_id'); + CRM_Core_DAO::executeQuery('ALTER TABLE `civicrm_activity` ADD CONSTRAINT `FK_civicrm_activity_original_id` FOREIGN KEY (`original_id`) REFERENCES `civicrm_activity` (`id`) ON DELETE SET NULL'); + return TRUE; + } + } -- 2.25.1