mirror of
https://github.com/drawdb-io/drawdb.git
synced 2025-05-24 10:23:37 +00:00
Fix ids and relationship names on import (#445)
This commit is contained in:
parent
94226de561
commit
f2613139bb
@ -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;
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user