diff --git a/packages/api/src/shell/autoIndexForeignKeysTransform.js b/packages/api/src/shell/autoIndexForeignKeysTransform.js new file mode 100644 index 000000000..a96b4cf0a --- /dev/null +++ b/packages/api/src/shell/autoIndexForeignKeysTransform.js @@ -0,0 +1,19 @@ +const autoIndexForeignKeysTransform = () => database => { + return { + ...database, + tables: database.tables.map(table => { + return { + ...table, + indexes: [ + ...(table.indexes || []), + ...table.foreignKeys.map(fk => ({ + constraintName: `IX_${fk.constraintName}`, + columns: fk.columns, + })), + ], + }; + }), + }; +}; + +module.exports = autoIndexForeignKeysTransform; diff --git a/packages/api/src/shell/index.js b/packages/api/src/shell/index.js index 647a91e11..874a486e1 100644 --- a/packages/api/src/shell/index.js +++ b/packages/api/src/shell/index.js @@ -32,6 +32,7 @@ const jsonToDbModel = require('./jsonToDbModel'); const jsonReader = require('./jsonReader'); const dataTypeMapperTransform = require('./dataTypeMapperTransform'); const sqlTextReplacementTransform = require('./sqlTextReplacementTransform'); +const autoIndexForeignKeysTransform = require('./autoIndexForeignKeysTransform'); const dbgateApi = { queryReader, @@ -67,6 +68,7 @@ const dbgateApi = { jsonToDbModel, dataTypeMapperTransform, sqlTextReplacementTransform, + autoIndexForeignKeysTransform, }; requirePlugin.initializeDbgateApi(dbgateApi);