From 3b1c8748f141e6e8301a9d0183a4c96d28965ea5 Mon Sep 17 00:00:00 2001 From: Stela Augustinova Date: Thu, 4 Dec 2025 14:34:26 +0100 Subject: [PATCH] Add createForeignKeyFore method to handle foreign key creation (Oracle) --- .../dbgate-plugin-oracle/src/frontend/Dumper.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/dbgate-plugin-oracle/src/frontend/Dumper.js b/plugins/dbgate-plugin-oracle/src/frontend/Dumper.js index 84d2ba84b..1c7aef034 100644 --- a/plugins/dbgate-plugin-oracle/src/frontend/Dumper.js +++ b/plugins/dbgate-plugin-oracle/src/frontend/Dumper.js @@ -64,6 +64,21 @@ class Dumper extends SqlDumper { this.putCmd('^alter ^table %f ^rename ^column %i ^to %i', column, column.columnName, newcol); } + createForeignKeyFore(fk) { + if (fk.constraintName != null && !this.dialect.anonymousForeignKey) { + this.put('^constraint %i ', fk.constraintName); + } + this.put( + '^foreign ^key (%,i) ^references %f (%,i)', + fk.columns.map(x => x.columnName), + { schemaName: fk.refSchemaName, pureName: fk.refTableName }, + fk.columns.map(x => x.refColumnName) + ); + if (fk.deleteAction && fk.deleteAction.toUpperCase() !== 'NO ACTION') { + this.put(' ^on ^delete %k', fk.deleteAction); + } + } + // dropTable(obj, options = {}) { // this.put('^drop ^table'); // if (options.testIfExists) this.put(' ^if ^exists');