From 002fb4a236ebec13a0b270af8f05364cd4bc37c4 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 3 Apr 2023 17:20:29 -0400 Subject: [PATCH] Campaign - Make name index unique --- CRM/Campaign/DAO/Campaign.php | 9 +++++---- CRM/Upgrade/Incremental/php/FiveSixtyOne.php | 3 +++ CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl | 5 +++++ xml/schema/Campaign/Campaign.xml | 5 +++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CRM/Campaign/DAO/Campaign.php b/CRM/Campaign/DAO/Campaign.php index be2ef3830d..758be195be 100644 --- a/CRM/Campaign/DAO/Campaign.php +++ b/CRM/Campaign/DAO/Campaign.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Campaign/Campaign.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:7c80d509cf26b13e8284140579330818) + * (GenCodeChecksum:75a9a33157dcd3411e3072a2b3740b0f) */ /** @@ -753,13 +753,14 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO { */ public static function indices($localize = TRUE) { $indices = [ - 'UI_campaign_name' => [ - 'name' => 'UI_campaign_name', + 'UI_name' => [ + 'name' => 'UI_name', 'field' => [ 0 => 'name', ], 'localizable' => FALSE, - 'sig' => 'civicrm_campaign::0::name', + 'unique' => TRUE, + 'sig' => 'civicrm_campaign::1::name', ], 'UI_campaign_type_id' => [ 'name' => 'UI_campaign_type_id', diff --git a/CRM/Upgrade/Incremental/php/FiveSixtyOne.php b/CRM/Upgrade/Incremental/php/FiveSixtyOne.php index 88d730e41b..c9e59195a3 100644 --- a/CRM/Upgrade/Incremental/php/FiveSixtyOne.php +++ b/CRM/Upgrade/Incremental/php/FiveSixtyOne.php @@ -66,6 +66,9 @@ class CRM_Upgrade_Incremental_php_FiveSixtyOne extends CRM_Upgrade_Incremental_B $this->addTask(ts('Create index %1', [1 => 'civicrm_cache.UI_group_name_path']), 'addIndex', 'civicrm_cache', [['group_name', 'path']], 'UI'); $this->addTask(ts('Create index %1', [1 => 'civicrm_cache.index_expired_date']), 'addIndex', 'civicrm_cache', [['expired_date']], 'index'); $this->addTask(ts('Update Saved Mapping for contribution import', [1 => $rev]), 'convertMappingFieldsToApi4StyleNames', $rev); + + $this->addTask(ts('Drop index %1', [1 => 'civicrm_campaign.UI_campaign_name']), 'dropIndex', 'civicrm_campaign', 'UI_campaign_name'); + $this->addTask(ts('Create index %1', [1 => 'civicrm_campaign.UI_name']), 'addIndex', 'civicrm_campaign', 'name', 'UI'); } /** diff --git a/CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl b/CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl index 2d37c602f1..ce9d28c8a8 100644 --- a/CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl +++ b/CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl @@ -7,4 +7,9 @@ UPDATE civicrm_payment_processor UPDATE civicrm_payment_processor SET {localize field="title"}title = name{/localize}; +{* https://github.com/civicrm/civicrm-core/pull/25994 *} +UPDATE civicrm_campaign c1, civicrm_campaign c2 + SET c2.name = CONCAT(c2.name, '_', c2.id) + WHERE c2.name = c1.name AND c2.id > c1.id; + UPDATE civicrm_navigation SET url = 'civicrm/import/contribution?reset=1' WHERE url = 'civicrm/contribute/import?reset=1'; diff --git a/xml/schema/Campaign/Campaign.xml b/xml/schema/Campaign/Campaign.xml index 3ef4f4e60b..6efbca7fd7 100644 --- a/xml/schema/Campaign/Campaign.xml +++ b/xml/schema/Campaign/Campaign.xml @@ -47,9 +47,10 @@ 3.3 - UI_campaign_name + UI_name name - 5.34 + true + 5.61 title -- 2.25.1