Shift Upgrade code to php for more stability
authorSeamus Lee <seamuslee001@gmail.com>
Thu, 21 Jul 2016 00:20:44 +0000 (10:20 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Sat, 10 Sep 2016 21:53:24 +0000 (07:53 +1000)
CRM/Upgrade/Incremental/php/FourSeven.php
CRM/Upgrade/Incremental/sql/4.7.10.mysql.tpl

index 9d820e8a0b025e84860fd6e128c8b9f976053522..ce2c19122349b07e788e930ff20c023313408536 100644 (file)
@@ -225,6 +225,7 @@ class CRM_Upgrade_Incremental_php_FourSeven extends CRM_Upgrade_Incremental_Base
     $this->addTask(ts('Upgrade DB to %1: SQL', array(1 => $rev)), 'runSql', $rev);
     $this->addTask(ts('Upgrade Add Help Pre and Post Fields to price value table'), 'addHelpPreAndHelpPostFieldsPriceFieldValue');
     $this->addTask(ts('Alter index and type for image URL'), 'alterIndexAndTypeForImageURL');
+    $this->addTask(ts('Add Data Type column to civicrm_option_group'), 'addDataTypeColumnToOptionGroupTable');
   }
 
   /**
@@ -828,4 +829,17 @@ FROM `civicrm_dashboard_contact` JOIN `civicrm_contact` WHERE civicrm_dashboard_
     return TRUE;
   }
 
+  /**
+   * CRM-18651 Add DataType column to Option Group Table
+   * @return bool
+   */
+  public static function addDataTypeColumnToOptionGroupTable() {
+    if (!CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_option_group', 'data_type') {
+      CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_option_group` ADD COLUMN `data_type` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL comment 'Data Type of Option Group.'");
+    }
+    CRM_Core_DAO::executeQuery("UPDATE `civicrm_option_group` SET `data_type` = 'Integer'
+      WHERE name IN ('activity_type', 'gender', 'payment_instrument', 'participant_role', 'event_type')");
+    return TRUE;
+  }
+
 }
index a08076a12db9e91ff2c1523758ea4a9ca2a12879..52e04cca5f9dfab2ea9e3faf83bc2644279d211c 100644 (file)
@@ -21,10 +21,3 @@ INSERT INTO
    `civicrm_option_value` (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`)
 VALUES
    (@option_group_id_ext, {localize}'{ts escape="sql"}odt{/ts}'{/localize}, @option_group_id_ext_val+1, 'odt', NULL, 0, 0, @option_group_id_ext_wt+1, 0, 1, 1);
-
---CRM-18651 Add in Data Type colum to option group table and set for some option groups
-ALTER TABLE civicrm_option_group
-ADD `data_type` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Data Type of Option Group.';
-UPDATE civicrm_option_group SET `data_type` = 'Integer'
-WHERE name in ('activity_type', 'gender', 'payment_instrument', 'participant_role', 'event_type',
-  'activity_status',);