Fix ids and relationship names on import

This commit is contained in:
1ilit 2025-05-11 22:06:43 +04:00
parent 94226de561
commit 8329d1a3e1
2 changed files with 5 additions and 4 deletions

View File

@ -1,6 +1,7 @@
import { Parser } from "@dbml/core"; import { Parser } from "@dbml/core";
import { arrangeTables } from "../arrangeTables"; import { arrangeTables } from "../arrangeTables";
import { Cardinality, Constraint } from "../../data/constants"; import { Cardinality, Constraint } from "../../data/constants";
import { nanoid } from "nanoid";
const parser = new Parser(); const parser = new Parser();
@ -14,7 +15,7 @@ export function fromDBML(src) {
for (const schema of ast.schemas) { for (const schema of ast.schemas) {
for (const table of schema.tables) { for (const table of schema.tables) {
let parsedTable = {}; let parsedTable = {};
parsedTable.id = tables.length; parsedTable.id = nanoid();
parsedTable.name = table.name; parsedTable.name = table.name;
parsedTable.comment = table.note ?? ""; parsedTable.comment = table.note ?? "";
parsedTable.color = "#175e7a"; parsedTable.color = "#175e7a";
@ -24,7 +25,7 @@ export function fromDBML(src) {
for (const column of table.fields) { for (const column of table.fields) {
const field = {}; const field = {};
field.id = parsedTable.fields.length; field.id = nanoid();
field.name = column.name; field.name = column.name;
field.type = column.type.type_name.toUpperCase(); field.type = column.type.type_name.toUpperCase();
field.default = column.dbdefault ?? ""; field.default = column.dbdefault ?? "";
@ -76,7 +77,7 @@ export function fromDBML(src) {
const relationship = {}; const relationship = {};
relationship.name = relationship.name =
"fk_" + startTable + "_" + startField + "_" + endTable; "fk_" + startTableName + "_" + startFieldName + "_" + endTableName;
relationship.startTableId = startTable.id; relationship.startTableId = startTable.id;
relationship.endTableId = endTable.id; relationship.endTableId = endTable.id;
relationship.endFieldId = endField.id; relationship.endFieldId = endField.id;

View File

@ -237,7 +237,7 @@ export function fromMSSQL(ast, diagramDb = DB.GENERIC) {
); );
if (!startField) return; if (!startField) return;
relationship.name = `fk_${startTable}_${startField}_${endTable}`; relationship.name = `fk_${startTableName}_${startFieldName}_${endTableName}`;
relationship.startTableId = startTable.id; relationship.startTableId = startTable.id;
relationship.startFieldId = startField.id; relationship.startFieldId = startField.id;
relationship.endTableId = endTable.id; relationship.endTableId = endTable.id;