X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FLogging%2FSchema.php;h=d733c8446781fb29ef9c1973d6c54cc8bcf77ee4;hb=1789c269b1c68178c1f3de38d751a4e37f94db4c;hp=d774e4d5c5669d5c245ea3e2219fb4dfc216de4d;hpb=68d6b897b10ec82e276280d07d9614c79561639d;p=civicrm-core.git diff --git a/CRM/Logging/Schema.php b/CRM/Logging/Schema.php index d774e4d5c5..d733c84467 100644 --- a/CRM/Logging/Schema.php +++ b/CRM/Logging/Schema.php @@ -70,13 +70,14 @@ AND TABLE_NAME LIKE 'civicrm_%' $this->tables[] = $dao->TABLE_NAME; } - // do not log temp import, cache and log tables + // do not log temp import, cache, menu and log tables $this->tables = preg_grep('/^civicrm_import_job_/', $this->tables, PREG_GREP_INVERT); $this->tables = preg_grep('/_cache$/', $this->tables, PREG_GREP_INVERT); $this->tables = preg_grep('/_log/', $this->tables, PREG_GREP_INVERT); $this->tables = preg_grep('/^civicrm_task_action_temp_/', $this->tables, PREG_GREP_INVERT); $this->tables = preg_grep('/^civicrm_export_temp_/', $this->tables, PREG_GREP_INVERT); $this->tables = preg_grep('/^civicrm_queue_/', $this->tables, PREG_GREP_INVERT); + $this->tables = preg_grep('/^civicrm_menu/', $this->tables, PREG_GREP_INVERT); //CRM-14672 // do not log civicrm_mailing_event* tables, CRM-12300 $this->tables = preg_grep('/^civicrm_mailing_event_/', $this->tables, PREG_GREP_INVERT); @@ -260,6 +261,11 @@ AND TABLE_NAME LIKE 'log_civicrm_%' return TRUE; } + /** + * @param $table + * + * @return array + */ private function _getCreateQuery($table) { $dao = CRM_Core_DAO::executeQuery("SHOW CREATE TABLE {$table}"); $dao->fetch(); @@ -267,6 +273,12 @@ AND TABLE_NAME LIKE 'log_civicrm_%' return $create; } + /** + * @param $col + * @param $createQuery + * + * @return array|mixed|string + */ private function _getColumnQuery($col, $createQuery) { $line = preg_grep("/^ `$col` /", $createQuery); $line = rtrim(array_pop($line), ','); @@ -275,6 +287,9 @@ AND TABLE_NAME LIKE 'log_civicrm_%' return $line; } + /** + * @param bool $rebuildTrigger + */ function fixSchemaDifferencesForAll($rebuildTrigger = FALSE) { $diffs = array(); foreach ($this->tables as $table) { @@ -301,6 +316,11 @@ AND TABLE_NAME LIKE 'log_civicrm_%' * so there's no need for a default timestamp and therefore we remove such default timestamps * also eliminate the NOT NULL constraint, since we always copy and schema can change down the road) */ + /** + * @param $query + * + * @return mixed + */ function fixTimeStampAndNotNullSQL($query) { $query = str_ireplace("TIMESTAMP NOT NULL", "TIMESTAMP NULL", $query); $query = str_ireplace("DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", '', $query); @@ -398,6 +418,12 @@ WHERE table_schema IN ('{$this->db}', '{$civiDB}')"; return $columnSpecs[$table]; } + /** + * @param $civiTable + * @param $logTable + * + * @return array + */ function columnsWithDiffSpecs($civiTable, $logTable) { $civiTableSpecs = $this->columnSpecsOf($civiTable); $logTableSpecs = $this->columnSpecsOf($logTable); @@ -533,6 +559,11 @@ COLS; return (bool) CRM_Core_DAO::singleValueQuery("SHOW TRIGGERS LIKE 'civicrm_contact'"); } + /** + * @param $info + * @param null $tableName + * @param bool $force + */ function triggerInfo(&$info, $tableName = NULL, $force = FALSE) { // check if we have logging enabled $config =& CRM_Core_Config::singleton();