Skip to content

Commit f261313

Browse files
authored
Fix ids and relationship names on import (#445)
1 parent 94226de commit f261313

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/utils/importFrom/dbml.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Parser } from "@dbml/core";
22
import { arrangeTables } from "../arrangeTables";
33
import { Cardinality, Constraint } from "../../data/constants";
4+
import { nanoid } from "nanoid";
45

56
const parser = new Parser();
67

@@ -14,7 +15,7 @@ export function fromDBML(src) {
1415
for (const schema of ast.schemas) {
1516
for (const table of schema.tables) {
1617
let parsedTable = {};
17-
parsedTable.id = tables.length;
18+
parsedTable.id = nanoid();
1819
parsedTable.name = table.name;
1920
parsedTable.comment = table.note ?? "";
2021
parsedTable.color = "#175e7a";
@@ -24,7 +25,7 @@ export function fromDBML(src) {
2425
for (const column of table.fields) {
2526
const field = {};
2627

27-
field.id = parsedTable.fields.length;
28+
field.id = nanoid();
2829
field.name = column.name;
2930
field.type = column.type.type_name.toUpperCase();
3031
field.default = column.dbdefault ?? "";
@@ -76,7 +77,7 @@ export function fromDBML(src) {
7677
const relationship = {};
7778

7879
relationship.name =
79-
"fk_" + startTable + "_" + startField + "_" + endTable;
80+
"fk_" + startTableName + "_" + startFieldName + "_" + endTableName;
8081
relationship.startTableId = startTable.id;
8182
relationship.endTableId = endTable.id;
8283
relationship.endFieldId = endField.id;

src/utils/importSQL/mssql.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ export function fromMSSQL(ast, diagramDb = DB.GENERIC) {
237237
);
238238
if (!startField) return;
239239

240-
relationship.name = `fk_${startTable}_${startField}_${endTable}`;
240+
relationship.name = `fk_${startTableName}_${startFieldName}_${endTableName}`;
241241
relationship.startTableId = startTable.id;
242242
relationship.startFieldId = startField.id;
243243
relationship.endTableId = endTable.id;

0 commit comments

Comments
 (0)