diff --git a/plugins/dbgate-plugin-mysql/src/backend/Analyser.js b/plugins/dbgate-plugin-mysql/src/backend/Analyser.js index 27402eca8..ba94d39bb 100644 --- a/plugins/dbgate-plugin-mysql/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-mysql/src/backend/Analyser.js @@ -245,6 +245,7 @@ class Analyser extends DatabaseAnalyser { parameters: functionNameToParameters[x.pureName], })), triggers: triggers.rows.map(row => ({ + objectId: 'triggers:' + row.triggerName, contentHash: row.modifyDate, pureName: row.triggerName, eventType: row.eventType, @@ -276,7 +277,8 @@ class Analyser extends DatabaseAnalyser { const tableModificationsQueryData = await this.analyserQuery('tableModifications'); const procedureModificationsQueryData = await this.analyserQuery('procedureModifications'); const functionModificationsQueryData = await this.analyserQuery('functionModifications'); - const schedulerEvents = await this.analyserQuery('schedulerEvents'); + const schedulerEvents = await this.analyserQuery('schedulerEventsModifications'); + const triggers = await this.analyserQuery('triggersModifications'); return { tables: tableModificationsQueryData.rows @@ -307,17 +309,13 @@ class Analyser extends DatabaseAnalyser { schedulerEvents: schedulerEvents.rows.map(row => ({ contentHash: _.isDate(row.LAST_ALTERED) ? row.LAST_ALTERED.toISOString() : row.LAST_ALTERED, pureName: row.EVENT_NAME, - createSql: row.CREATE_SQL, objectId: row.EVENT_NAME, - intervalValue: row.INTERVAL_VALUE, - intervalField: row.INTERVAL_FIELD, - starts: row.STARTS, - status: row.STATUS, - executeAt: row.EXECUTE_AT, - lastExecuted: row.LAST_EXECUTED, - eventType: row.EVENT_TYPE, - definer: row.DEFINER, - objectTypeField: 'schedulerEvents', + })), + triggers: triggers.rows.map(row => ({ + contentHash: row.modifyDate, + objectId: 'triggers:' + row.triggerName, + pureName: row.triggerName, + tableName: row.tableName, })), }; } diff --git a/plugins/dbgate-plugin-mysql/src/backend/sql/index.js b/plugins/dbgate-plugin-mysql/src/backend/sql/index.js index ab23eeaca..41450cb6d 100644 --- a/plugins/dbgate-plugin-mysql/src/backend/sql/index.js +++ b/plugins/dbgate-plugin-mysql/src/backend/sql/index.js @@ -12,7 +12,9 @@ const uniqueNames = require('./uniqueNames'); const viewTexts = require('./viewTexts'); const parameters = require('./parameters'); const triggers = require('./triggers'); +const triggersModifications = require('./triggersModifications'); const schedulerEvents = require('./schedulerEvents.js'); +const schedulerEventsModifications = require('./schedulerEventsModifications.js'); module.exports = { columns, @@ -29,5 +31,7 @@ module.exports = { uniqueNames, viewTexts, triggers, + triggersModifications, schedulerEvents, + schedulerEventsModifications, }; diff --git a/plugins/dbgate-plugin-mysql/src/backend/sql/schedulerEventsModifications.js b/plugins/dbgate-plugin-mysql/src/backend/sql/schedulerEventsModifications.js new file mode 100644 index 000000000..b66612417 --- /dev/null +++ b/plugins/dbgate-plugin-mysql/src/backend/sql/schedulerEventsModifications.js @@ -0,0 +1,7 @@ +module.exports = ` +SELECT + EVENT_NAME, + LAST_ALTERED +FROM INFORMATION_SCHEMA.EVENTS +WHERE EVENT_SCHEMA = '#DATABASE#' +`; diff --git a/plugins/dbgate-plugin-mysql/src/backend/sql/triggersModifications.js b/plugins/dbgate-plugin-mysql/src/backend/sql/triggersModifications.js new file mode 100644 index 000000000..cc2807481 --- /dev/null +++ b/plugins/dbgate-plugin-mysql/src/backend/sql/triggersModifications.js @@ -0,0 +1,9 @@ +module.exports = ` +SELECT + TRIGGER_NAME AS triggerName, + EVENT_OBJECT_TABLE AS tableName, + CREATED as modifyDate +FROM + INFORMATION_SCHEMA.TRIGGERS + WHERE EVENT_OBJECT_SCHEMA = '#DATABASE#' +`;