while ($dao->fetch()) {
$this->tables[] = $dao->TABLE_NAME;
}
+ // Get any non standard table names used for custom groups.
+ // include these BEFORE the hook is called.
+ $customFieldDAO = CRM_Core_DAO::executeQuery("
+ SELECT DISTINCT table_name as TABLE_NAME FROM civicrm_custom_group
+ where table_name NOT LIKE 'civicrm_%';
+ ");
+ while ($customFieldDAO->fetch()) {
+ $this->tables[] = $customFieldDAO->TABLE_NAME;
+ }
// do not log temp import, cache, menu and log tables
$this->tables = preg_grep('/^civicrm_import_job_/', $this->tables, PREG_GREP_INVERT);
*
* @param string $tableName
*/
- public function dropTriggers($tableName = NULL) {
+ public function dropTriggers($tableName = NULL): void {
/** @var \Civi\Core\SqlTriggers $sqlTriggers */
$sqlTriggers = Civi::service('sql_triggers');
$dao = new CRM_Core_DAO();
$tableNames = $this->tables;
}
+ // Sort the table names so the sql output is consistent for those sites
+ // loading it asynchronously (using the setting 'logging_no_trigger_permission')
+ asort($tableNames);
foreach ($tableNames as $table) {
$validName = CRM_Core_DAO::shortenSQLName($table, 48, TRUE);