X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FLogging%2FSchema.php;h=b67d3af955ba03b2bdf276171bd3d4ad5b9d997e;hb=39373d13920ecfec6cb8025a3c2c98fa9bd4b3ff;hp=d774e4d5c5669d5c245ea3e2219fb4dfc216de4d;hpb=a5cea5e90a3ad463c363d53c49ed0bb1b6868dbc;p=civicrm-core.git diff --git a/CRM/Logging/Schema.php b/CRM/Logging/Schema.php index d774e4d5c5..b67d3af955 100644 --- a/CRM/Logging/Schema.php +++ b/CRM/Logging/Schema.php @@ -70,13 +70,13 @@ 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 + $this->tables = preg_grep('/_temp_/', $this->tables, PREG_GREP_INVERT); // do not log civicrm_mailing_event* tables, CRM-12300 $this->tables = preg_grep('/^civicrm_mailing_event_/', $this->tables, PREG_GREP_INVERT); @@ -260,6 +260,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 +272,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 +286,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 +315,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 +417,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 +558,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();