mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-29 19:13:59 +00:00
feat: add mysql triggers to analyser
This commit is contained in:
@@ -160,6 +160,9 @@ class Analyser extends DatabaseAnalyser {
|
|||||||
this.feedback({ analysingMessage: 'Loading indexes' });
|
this.feedback({ analysingMessage: 'Loading indexes' });
|
||||||
const indexes = await this.analyserQuery('indexes', ['tables']);
|
const indexes = await this.analyserQuery('indexes', ['tables']);
|
||||||
this.feedback({ analysingMessage: 'Loading uniques' });
|
this.feedback({ analysingMessage: 'Loading uniques' });
|
||||||
|
|
||||||
|
const triggers = await this.analyserQuery('triggers');
|
||||||
|
|
||||||
const uniqueNames = await this.analyserQuery('uniqueNames', ['tables']);
|
const uniqueNames = await this.analyserQuery('uniqueNames', ['tables']);
|
||||||
this.feedback({ analysingMessage: 'Finalizing DB structure' });
|
this.feedback({ analysingMessage: 'Finalizing DB structure' });
|
||||||
|
|
||||||
@@ -236,6 +239,16 @@ class Analyser extends DatabaseAnalyser {
|
|||||||
contentHash: _.isDate(x.modifyDate) ? x.modifyDate.toISOString() : x.modifyDate,
|
contentHash: _.isDate(x.modifyDate) ? x.modifyDate.toISOString() : x.modifyDate,
|
||||||
parameters: functionNameToParameters[x.pureName],
|
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 });
|
this.feedback({ analysingMessage: null });
|
||||||
return res;
|
return res;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ const functionModifications = require('./functionModifications');
|
|||||||
const uniqueNames = require('./uniqueNames');
|
const uniqueNames = require('./uniqueNames');
|
||||||
const viewTexts = require('./viewTexts');
|
const viewTexts = require('./viewTexts');
|
||||||
const parameters = require('./parameters');
|
const parameters = require('./parameters');
|
||||||
|
const triggers = require('./triggers');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
columns,
|
columns,
|
||||||
@@ -26,4 +27,5 @@ module.exports = {
|
|||||||
indexes,
|
indexes,
|
||||||
uniqueNames,
|
uniqueNames,
|
||||||
viewTexts,
|
viewTexts,
|
||||||
|
triggers,
|
||||||
};
|
};
|
||||||
|
|||||||
13
plugins/dbgate-plugin-mysql/src/backend/sql/triggers.js
Normal file
13
plugins/dbgate-plugin-mysql/src/backend/sql/triggers.js
Normal 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
|
||||||
|
`;
|
||||||
Reference in New Issue
Block a user