From ef25b59a76cf49ee9df4dc309ad4b1a9a1eac15a Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Fri, 25 Nov 2022 15:57:43 -0500 Subject: [PATCH] Fix upgrader to safely run multiple times --- CRM/Upgrade/Incremental/php/FiveFiftyOne.php | 28 +++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/CRM/Upgrade/Incremental/php/FiveFiftyOne.php b/CRM/Upgrade/Incremental/php/FiveFiftyOne.php index 3acc87c862..1b8f54332e 100644 --- a/CRM/Upgrade/Incremental/php/FiveFiftyOne.php +++ b/CRM/Upgrade/Incremental/php/FiveFiftyOne.php @@ -306,19 +306,21 @@ class CRM_Upgrade_Incremental_php_FiveFiftyOne extends CRM_Upgrade_Incremental_B public static function updateUserJobTable($context): bool { self::addColumn($context, 'civicrm_user_job', 'job_type', 'varchar(64) NOT NULL'); // This is really only for rc-upgraders. There has been no stable with type_id. - CRM_Core_DAO::executeQuery( - "UPDATE civicrm_user_job SET job_type = - CASE - WHEN type_id = 1 THEN 'contact_import' - WHEN type_id = 2 THEN 'contribution_import' - WHEN type_id = 3 THEN 'membership_import' - WHEN type_id = 4 THEN 'activity_import' - WHEN type_id = 5 THEN 'participant_import' - WHEN type_id = 6 THEN 'custom_field_import' - END - " - ); - self::dropColumn($context, 'civicrm_user_job', 'type_id'); + if (CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_user_job', 'type_id')) { + CRM_Core_DAO::executeQuery( + "UPDATE civicrm_user_job SET job_type = + CASE + WHEN type_id = 1 THEN 'contact_import' + WHEN type_id = 2 THEN 'contribution_import' + WHEN type_id = 3 THEN 'membership_import' + WHEN type_id = 4 THEN 'activity_import' + WHEN type_id = 5 THEN 'participant_import' + WHEN type_id = 6 THEN 'custom_field_import' + END + " + ); + self::dropColumn($context, 'civicrm_user_job', 'type_id'); + } return TRUE; } -- 2.25.1