CRM-16717 alter logging table field length when altering custom table field length
authorEileen McNaughton <eileen@fuzion.co.nz>
Wed, 17 Jun 2015 23:50:42 +0000 (11:50 +1200)
committerEileen McNaughton <eileen@fuzion.co.nz>
Thu, 9 Jul 2015 00:31:45 +0000 (12:31 +1200)
CRM/Core/BAO/CustomField.php
CRM/Core/BAO/SchemaHandler.php

index 506d63edf8250cd957619be0b7cc106d6a658644..a7e04ba442038e6fb9a9de25f8527bbdf3e972f9 100644 (file)
@@ -174,7 +174,7 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
           }
 
           if (!empty($defaultArray)) {
-            // also add the seperator before and after the value per new conventio (CRM-1604)
+            // also add the separator before and after the value per new convention (CRM-1604)
             $params['default_value'] = CRM_Core_DAO::VALUE_SEPARATOR . implode(CRM_Core_DAO::VALUE_SEPARATOR, $defaultArray) . CRM_Core_DAO::VALUE_SEPARATOR;
           }
         }
index 2f4972785200fd5a133de7b65daba164986483cc..975ca89a87faa338578a84dd1400bfbebf92027b 100644 (file)
@@ -346,10 +346,12 @@ ALTER TABLE {$tableName}
 
     $config = CRM_Core_Config::singleton();
     if ($config->logging) {
-      // logging support: if we’re adding a column (but only then!) make sure the potential relevant log table gets a column as well
-      if ($params['operation'] == 'add') {
+      // CRM-16717 not sure why this was originally limited to add.
+      // For example custom tables can have field length changes - which need to flow through to logging.
+      // Are there any modifies we DON'T was to call this function for (& shouldn't it be clever enough to cope?)
+      if ($params['operation'] == 'add' || $params['operation'] == 'modify') {
         $logging = new CRM_Logging_Schema();
-        $logging->fixSchemaDifferencesFor($params['table_name'], array('ADD' => array($params['name'])), FALSE);
+        $logging->fixSchemaDifferencesFor($params['table_name'], array($prefix => array($params['name'])), FALSE);
       }
     }