11import { Cardinality } from "../../data/constants" ;
22import { 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-
154function columnDefault ( field , database ) {
165 if ( ! field . default || field . default . trim ( ) === "" ) {
176 return "" ;
@@ -29,15 +18,22 @@ function columnComment(field) {
2918}
3019
3120function 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
4339function 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