File tree 5 files changed +30
-9
lines changed
5 files changed +30
-9
lines changed Original file line number Diff line number Diff line change @@ -5,3 +5,11 @@ export const datamodelSingleTable = /* Prisma */ `
5
5
age Int?
6
6
}
7
7
` ;
8
+
9
+ export const datamodelTableWithStringDefaults = /* Prisma */ `
10
+ model Post {
11
+ id Int @id @default(autoincrement())
12
+ title String @default("")
13
+ color String @default("blue")
14
+ }
15
+ ` ;
Original file line number Diff line number Diff line change 1
- import { datamodelSingleTable } from './fixtures/table.datamodel' ;
1
+ import {
2
+ datamodelSingleTable ,
3
+ datamodelTableWithStringDefaults ,
4
+ } from './fixtures/table.datamodel' ;
2
5
import { generateDMMF } from './utils/generateDMMF' ;
3
6
import { generateTables } from '../src/generator/table' ;
4
7
@@ -16,4 +19,18 @@ describe('Tables', () => {
16
19
expect ( enums . length ) . toEqual ( 1 ) ;
17
20
expect ( enums [ 0 ] ) . toMatch ( expected ) ;
18
21
} ) ;
22
+
23
+ test ( 'generate a table with empty string default' , async ( ) => {
24
+ const dmmf = await generateDMMF ( datamodelTableWithStringDefaults ) ;
25
+
26
+ const expected = `Table Post {
27
+ id Int [pk, increment]
28
+ title String [not null, default: '']
29
+ color String [not null, default: 'blue']
30
+ }` ;
31
+ const enums = generateTables ( dmmf . datamodel . models ) ;
32
+
33
+ expect ( enums . length ) . toEqual ( 1 ) ;
34
+ expect ( enums [ 0 ] ) . toMatch ( expected ) ;
35
+ } ) ;
19
36
} ) ;
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ Table Profile {
24
24
25
25
Table Post {
26
26
id Int [pk, increment]
27
- title String [not null]
27
+ title String [not null, default: '' ]
28
28
content String
29
29
published Boolean [not null, default: false]
30
30
author User
Original file line number Diff line number Diff line change @@ -36,7 +36,7 @@ model Profile {
36
36
37
37
model Post {
38
38
id Int @id @default (autoincrement () )
39
- title String
39
+ title String @default ( " " )
40
40
content String ?
41
41
published Boolean @default (false )
42
42
author User ? @relation (fields : [authorId ] , references : [id ] )
Original file line number Diff line number Diff line change @@ -46,12 +46,8 @@ const generateColumnDefinition = (field: DMMF.Field): string => {
46
46
columnDefinition . push ( 'not null' ) ;
47
47
}
48
48
49
- if (
50
- typeof field . default === 'string' ||
51
- typeof field . default === 'boolean' ||
52
- typeof field . default === 'number'
53
- ) {
54
- if ( field . kind === 'enum' ) {
49
+ if ( field . hasDefaultValue && typeof field . default != 'object' ) {
50
+ if ( field . type === 'String' || field . kind === 'enum' ) {
55
51
columnDefinition . push ( `default: '${ field . default } '` ) ;
56
52
} else {
57
53
columnDefinition . push ( `default: ${ field . default } ` ) ;
You can’t perform that action at this time.
0 commit comments