Skip to content

Commit 38c0a99

Browse files
authored
Fix column and fk constraint in dbml export (#365)
1 parent 7f5f481 commit 38c0a99

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

src/utils/exportAs/dbml.js

+14-18
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
11
import { Cardinality } from "../../data/constants";
22
import { parseDefault } from "../exportSQL/shared";
33

4-
function hasColumnSettings(field) {
5-
return (
6-
field.primary ||
7-
field.notNull ||
8-
field.increment ||
9-
field.unique ||
10-
(field.comment && field.comment.trim() != "") ||
11-
(field.default && field.default.trim() != "")
12-
);
13-
}
14-
154
function columnDefault(field, database) {
165
if (!field.default || field.default.trim() === "") {
176
return "";
@@ -29,15 +18,22 @@ function columnComment(field) {
2918
}
3019

3120
function columnSettings(field, database) {
32-
if (!hasColumnSettings(field)) {
21+
let constraints = [];
22+
23+
field.primary && constraints.push("pk");
24+
field.increment && constraints.push("increment");
25+
field.notNull && constraints.push("not null");
26+
field.unique && constraints.push("unique");
27+
constraints.push(columnDefault(field, database));
28+
constraints.push(columnComment(field, database));
29+
30+
constraints = constraints.filter((x) => Boolean(x));
31+
32+
if (!constraints.length) {
3333
return "";
3434
}
3535

36-
return ` [ ${field.primary ? "pk " : ""}${
37-
field.increment ? "increment " : ""
38-
}${field.notNull ? "not null " : ""}${
39-
field.unique ? "unique " : ""
40-
}${columnDefault(field, database)}${columnComment(field, database)}]`;
36+
return ` [ ${constraints.join(", ")} ]`;
4137
}
4238

4339
function cardinality(rel) {
@@ -96,7 +92,7 @@ export function toDBML(diagram) {
9692
rel,
9793
)} ${diagram.tables[rel.endTableId].name}.${
9894
diagram.tables[rel.endTableId].fields[rel.endFieldId].name
99-
} [ delete: ${rel.deleteConstraint.toLowerCase()}, on update: ${rel.updateConstraint.toLowerCase()} ]\n}`,
95+
} [ delete: ${rel.deleteConstraint.toLowerCase()}, update: ${rel.updateConstraint.toLowerCase()} ]\n}`,
10096
)
10197
.join("\n\n")}`;
10298
}

0 commit comments

Comments
 (0)