mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 11:26:00 +00:00
fix: add createSql to firebird triggers
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
const _ = require('lodash');
|
||||
const sql = require('./sql');
|
||||
const { getDataTypeString, getTriggerTiming, getTriggerEventType, getFormattedDefaultValue } = require('./helpers');
|
||||
const {
|
||||
getDataTypeString,
|
||||
getTriggerTiming,
|
||||
getTriggerEventType,
|
||||
getFormattedDefaultValue,
|
||||
getTriggerCreateSql,
|
||||
} = require('./helpers');
|
||||
|
||||
const { DatabaseAnalyser } = require('dbgate-tools');
|
||||
|
||||
@@ -30,6 +36,7 @@ class Analyser extends DatabaseAnalyser {
|
||||
...i,
|
||||
eventType: getTriggerEventType(i.TRIGGERTYPE),
|
||||
triggerTiming: getTriggerTiming(i.TRIGGERTYPE),
|
||||
createSql: getTriggerCreateSql(i),
|
||||
}));
|
||||
|
||||
const primaryKeys = primaryKeysResult.rows ?? [];
|
||||
|
||||
@@ -71,6 +71,15 @@ function getTriggerEventType(triggerType) {
|
||||
return eventMap[triggerType]?.eventType || null;
|
||||
}
|
||||
|
||||
function getTriggerCreateSql(triggerResult) {
|
||||
const eventType = getTriggerEventType(triggerResult.TRIGGERTYPE);
|
||||
const triggerTiming = getTriggerTiming(triggerResult.TRIGGERTYPE);
|
||||
const body = triggerResult.TRIGGER_BODY_SQL;
|
||||
|
||||
const createSql = `CREATE OR ALTER TRIGGER "${triggerResult.pureName}" ${triggerTiming} ${eventType} ON "${triggerResult.tableName}" ${body};`;
|
||||
return createSql;
|
||||
}
|
||||
|
||||
function getTriggerTiming(triggerType) {
|
||||
return eventMap[triggerType]?.triggerTiming || null;
|
||||
}
|
||||
@@ -86,4 +95,5 @@ module.exports = {
|
||||
getTriggerEventType,
|
||||
getTriggerTiming,
|
||||
getFormattedDefaultValue,
|
||||
getTriggerCreateSql,
|
||||
};
|
||||
|
||||
@@ -2,7 +2,8 @@ module.exports = `
|
||||
SELECT
|
||||
TRIM(rtr.RDB$TRIGGER_NAME) as "pureName",
|
||||
TRIM(rtr.RDB$RELATION_NAME) as "tableName",
|
||||
rtr.RDB$TRIGGER_TYPE as TRIGGERTYPE
|
||||
rtr.RDB$TRIGGER_TYPE as TRIGGERTYPE,
|
||||
CAST(rtr.RDB$TRIGGER_SOURCE AS VARCHAR(8191)) AS TRIGGER_BODY_SQL
|
||||
FROM
|
||||
RDB$TRIGGERS rtr
|
||||
JOIN RDB$RELATIONS rel ON rtr.RDB$RELATION_NAME = rel.RDB$RELATION_NAME
|
||||
|
||||
Reference in New Issue
Block a user