diff --git a/plugins/dbgate-plugin-mysql/src/backend/Analyser.js b/plugins/dbgate-plugin-mysql/src/backend/Analyser.js index 1ff963894..30363106b 100644 --- a/plugins/dbgate-plugin-mysql/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-mysql/src/backend/Analyser.js @@ -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; diff --git a/plugins/dbgate-plugin-mysql/src/backend/sql/index.js b/plugins/dbgate-plugin-mysql/src/backend/sql/index.js index 8c3e095fa..1a7eda8d7 100644 --- a/plugins/dbgate-plugin-mysql/src/backend/sql/index.js +++ b/plugins/dbgate-plugin-mysql/src/backend/sql/index.js @@ -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, }; diff --git a/plugins/dbgate-plugin-mysql/src/backend/sql/triggers.js b/plugins/dbgate-plugin-mysql/src/backend/sql/triggers.js new file mode 100644 index 000000000..f548d96e7 --- /dev/null +++ b/plugins/dbgate-plugin-mysql/src/backend/sql/triggers.js @@ -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 +`;