feat: add mysql triggers to analyser

This commit is contained in:
Nybkox
2024-12-12 20:12:17 +01:00
parent 62daa13e54
commit c00cb3076c
3 changed files with 28 additions and 0 deletions

View File

@@ -160,6 +160,9 @@ class Analyser extends DatabaseAnalyser {
this.feedback({ analysingMessage: 'Loading indexes' });
const indexes = await this.analyserQuery('indexes', ['tables']);
this.feedback({ analysingMessage: 'Loading uniques' });
const triggers = await this.analyserQuery('triggers');
const uniqueNames = await this.analyserQuery('uniqueNames', ['tables']);
this.feedback({ analysingMessage: 'Finalizing DB structure' });
@@ -236,6 +239,16 @@ class Analyser extends DatabaseAnalyser {
contentHash: _.isDate(x.modifyDate) ? x.modifyDate.toISOString() : x.modifyDate,
parameters: functionNameToParameters[x.pureName],
})),
triggers: triggers.rows.map(row => ({
objectId: row.triggerName,
contentHash: row.modifyDate,
triggerName: row.triggerName,
eventType: row.triggerEvent,
triggerTiming: row.triggerTiming,
schemaName: row.schemaName,
tableName: row.tableName,
createSql: row.definition,
})),
};
this.feedback({ analysingMessage: null });
return res;

View File

@@ -11,6 +11,7 @@ const functionModifications = require('./functionModifications');
const uniqueNames = require('./uniqueNames');
const viewTexts = require('./viewTexts');
const parameters = require('./parameters');
const triggers = require('./triggers');
module.exports = {
columns,
@@ -26,4 +27,5 @@ module.exports = {
indexes,
uniqueNames,
viewTexts,
triggers,
};

View File

@@ -0,0 +1,13 @@
module.exports = `
SELECT
TRIGGER_NAME AS triggerName,
EVENT_MANIPULATION AS eventType,
ACTION_TIMING AS triggerTiming,
EVENT_OBJECT_SCHEMA AS schemaName,
EVENT_OBJECT_TABLE AS tableName,
ACTION_STATEMENT AS definition,
CREATED as modifyDate
FROM
INFORMATION_SCHEMA.TRIGGERS
WHERE EVENT_OBJECT_SCHEMA = '#DATABASE#' AND TRIGGER_NAME =OBJECT_ID_CONDITION
`;