CRM-19100: 4.7.8 SQL Incremental Update May Fail for UTF8
authorjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Wed, 20 Jul 2016 07:33:09 +0000 (13:03 +0530)
committerjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Wed, 20 Jul 2016 07:33:09 +0000 (13:03 +0530)
CRM/Upgrade/Incremental/php/FourSeven.php
CRM/Upgrade/Incremental/sql/4.7.8.mysql.tpl
xml/schema/Contact/Contact.xml

index ab9fee778095188306a1d773af92100e5f8849db..5ff88e08e55496dc37540b389f6de91f134e0781 100644 (file)
@@ -218,6 +218,7 @@ class CRM_Upgrade_Incremental_php_FourSeven extends CRM_Upgrade_Incremental_Base
   public function upgrade_4_7_10($rev) {
     $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');
   }
 
   /*
@@ -726,4 +727,19 @@ FROM `civicrm_dashboard_contact` JOIN `civicrm_contact` WHERE civicrm_dashboard_
     return TRUE;
   }
 
+  /**
+   * CRM-19100 - Alter Index and Type for Image URL
+   * @return bool
+   */
+  public static function alterIndexAndTypeForImageURL() {
+    $dao = CRM_Core_DAO::executeQuery("SHOW INDEX FROM civicrm_contact WHERE KEY_NAME = 'index_image_url'");
+    if ($dao->N) {
+      CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_contact` DROP INDEX `index_image_url`");
+    }
+    CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_contact` CHANGE `image_URL` `image_URL` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'optional URL for preferred image (photo, logo, etc.) to display for this contact.'");
+    CRM_Core_DAO::executeQuery("CREATE INDEX `index_image_url` ON `civicrm_contact` ( image_URL(128) )");
+
+    return TRUE;
+  }
+
 }
index 5c1cfb611b41b6cdb03391105a115f8eaf9c5f5c..a7fca7aced84f5d3a45f4f2ec322d507b1e7cfd0 100644 (file)
@@ -1,8 +1,5 @@
 {* file to handle db changes in 4.7.8 during upgrade *}
 
-#CRM-17967 - Allow conact image file name length during upload up to 255 characters long
-ALTER TABLE `civicrm_contact` CHANGE `image_URL` `image_URL` VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'optional URL for preferred image (photo, logo, etc.) to display for this contact.';
-
 -- CRM-18516 Convert the date fields relating to group caching and acl caching timestamp
 ALTER TABLE civicrm_group CHANGE cache_date cache_date timestamp NULL DEFAULT NULL , CHANGE refresh_date refresh_date timestamp NULL DEFAULT NULL;
 ALTER TABLE civicrm_acl_cache CHANGE modified_date modified_date timestamp NULL DEFAULT NULL;
index e6ffe418ad952120351f43de9cac157d10b17929..8cfc7b76aac2fa5498089a18c3be8b5638343a11 100644 (file)
   </field>
   <field>
     <name>image_URL</name>
-    <type>varchar</type>
-    <length>512</length>
+    <type>text</type>
     <import>true</import>
     <comment>optional URL for preferred image (photo, logo, etc.) to display for this contact.</comment>
     <add>1.1</add>