1
1
import { Parser } from "@dbml/core" ;
2
2
import { arrangeTables } from "../arrangeTables" ;
3
3
import { Cardinality , Constraint } from "../../data/constants" ;
4
+ import { nanoid } from "nanoid" ;
4
5
5
6
const parser = new Parser ( ) ;
6
7
@@ -14,7 +15,7 @@ export function fromDBML(src) {
14
15
for ( const schema of ast . schemas ) {
15
16
for ( const table of schema . tables ) {
16
17
let parsedTable = { } ;
17
- parsedTable . id = tables . length ;
18
+ parsedTable . id = nanoid ( ) ;
18
19
parsedTable . name = table . name ;
19
20
parsedTable . comment = table . note ?? "" ;
20
21
parsedTable . color = "#175e7a" ;
@@ -24,7 +25,7 @@ export function fromDBML(src) {
24
25
for ( const column of table . fields ) {
25
26
const field = { } ;
26
27
27
- field . id = parsedTable . fields . length ;
28
+ field . id = nanoid ( ) ;
28
29
field . name = column . name ;
29
30
field . type = column . type . type_name . toUpperCase ( ) ;
30
31
field . default = column . dbdefault ?? "" ;
@@ -76,7 +77,7 @@ export function fromDBML(src) {
76
77
const relationship = { } ;
77
78
78
79
relationship . name =
79
- "fk_" + startTable + "_" + startField + "_" + endTable ;
80
+ "fk_" + startTableName + "_" + startFieldName + "_" + endTableName ;
80
81
relationship . startTableId = startTable . id ;
81
82
relationship . endTableId = endTable . id ;
82
83
relationship . endFieldId = endField . id ;
0 commit comments