1
1
import { Cardinality } from "../../data/constants" ;
2
2
import { parseDefault } from "../exportSQL/shared" ;
3
3
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
-
15
4
function columnDefault ( field , database ) {
16
5
if ( ! field . default || field . default . trim ( ) === "" ) {
17
6
return "" ;
@@ -29,15 +18,22 @@ function columnComment(field) {
29
18
}
30
19
31
20
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 ) {
33
33
return "" ;
34
34
}
35
35
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 ( ", " ) } ]` ;
41
37
}
42
38
43
39
function cardinality ( rel ) {
@@ -96,7 +92,7 @@ export function toDBML(diagram) {
96
92
rel ,
97
93
) } ${ diagram . tables [ rel . endTableId ] . name } .${
98
94
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}`,
100
96
)
101
97
. join ( "\n\n" ) } `;
102
98
}
0 commit comments