From: Seamus Lee Date: Mon, 6 Jun 2016 13:07:44 +0000 (+1000) Subject: Attempt to fix upgrade and keep activity tab filter settings X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=3ddd2901088c2707fcd363ca81d489d17231b8b0;p=civicrm-core.git Attempt to fix upgrade and keep activity tab filter settings --- diff --git a/CRM/Upgrade/Incremental/php/FourSeven.php b/CRM/Upgrade/Incremental/php/FourSeven.php index dc20d25476..7ec97f95e4 100644 --- a/CRM/Upgrade/Incremental/php/FourSeven.php +++ b/CRM/Upgrade/Incremental/php/FourSeven.php @@ -254,11 +254,27 @@ class CRM_Upgrade_Incremental_php_FourSeven extends CRM_Upgrade_Incremental_Base // Nav records are expendable. https://forum.civicrm.org/index.php?topic=36933.0 CRM_Core_DAO::executeQuery('DELETE FROM civicrm_setting WHERE contact_id IS NOT NULL AND name = "navigation"'); + + // Handle Strange activity_tab_filter settings. + CRM_Core_DAO::executeQuery('CREATE TABLE civicrm_activity_setting LIKE civicrm_setting'); + CRM_Core_DAO::executeQuery('ALTER TABLE civicrm_activity_setting DROP INDEX index_group_name'); + CRM_Core_DAO::executeQuery('ALTER TABLE civicrm_activity_setting DROP COLUMN group_name'); + CRM_Core_DAO::executeQuery('INSERT INTO civicrm_activity_setting (name, contact_id, domain_id, value) + SELECT DISTNCT name, contact_id, domain_id, value + FROM civicrm_setting + WHERE name = "activity_tab_filter" + AND value is not NULL'); CRM_Core_DAO::executeQuery('DELETE FROM civicrm_setting WHERE name = "activity_tab_filter"'); CRM_Core_DAO::executeQuery('ALTER TABLE civicrm_setting DROP INDEX index_group_name'); CRM_Core_DAO::executeQuery('ALTER TABLE civicrm_setting DROP COLUMN group_name'); CRM_Core_DAO::executeQuery('ALTER TABLE civicrm_setting ADD UNIQUE INDEX index_domain_contact_name (domain_id, contact_id, name)'); + CRM_Core_DAO::executeQuery('INSERT INTO civicrm_setting (name, contact_id, domain_id, value) + SELECT DISTNCT name, contact_id, domain_id, value + FROM civicrm_activity_setting + WHERE name = "activity_tab_filter" + AND value is not NULL'); + CRM_Core_DAO::executeQuery('DROP TABLE civicrm_activity_setting'); $domainDao = CRM_Core_DAO::executeQuery('SELECT id, config_backend FROM civicrm_domain'); while ($domainDao->fetch()) {