diff --git a/packages/web/src/designer/Designer.svelte b/packages/web/src/designer/Designer.svelte index 24f65485c..be7479b83 100644 --- a/packages/web/src/designer/Designer.svelte +++ b/packages/web/src/designer/Designer.svelte @@ -79,9 +79,31 @@ } } + let references = current?.references; + if (settings?.useDatabaseReferences) { + references = []; + for (const table of newTables) { + for (const fk of table.foreignKeys) { + const dst = newTables.find(x => x.pureName == fk.refTableName && x.schemaName == fk.refSchemaName); + if (!dst) continue; + references.push({ + designerId: uuidv1(), + sourceId: table.designerId, + targetId: dst.designerId, + joinType: '', + columns: fk.columns.map(col => ({ + source: col.columnName, + target: col.refColumnName, + })), + }); + } + } + } + return { ...current, tables: newTables, + references, }; }, true); } diff --git a/packages/web/src/designer/DiagramDesigner.svelte b/packages/web/src/designer/DiagramDesigner.svelte index 97a9c7ffd..ea46a3a80 100644 --- a/packages/web/src/designer/DiagramDesigner.svelte +++ b/packages/web/src/designer/DiagramDesigner.svelte @@ -10,5 +10,6 @@ allowCreateRefByDrag: false, allowTableAlias: false, updateFromDbInfo: true, + useDatabaseReferences: true, }} /> diff --git a/packages/web/src/designer/QueryDesigner.svelte b/packages/web/src/designer/QueryDesigner.svelte index fc317c1f5..898fea18f 100644 --- a/packages/web/src/designer/QueryDesigner.svelte +++ b/packages/web/src/designer/QueryDesigner.svelte @@ -10,5 +10,6 @@ allowCreateRefByDrag: true, allowTableAlias: true, updateFromDbInfo: false, + useDatabaseReferences: false, }} />