-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
/
EntitySchemaColumnOptions.ts
203 lines (166 loc) · 5.03 KB
/
EntitySchemaColumnOptions.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
import {ColumnType} from "../driver/types/ColumnTypes";
import {ValueTransformer} from "../decorator/options/ValueTransformer";
import { SpatialColumnOptions } from "../decorator/options/SpatialColumnOptions";
export interface EntitySchemaColumnOptions extends SpatialColumnOptions {
/**
* Indicates if this column is a primary column.
*/
primary?: boolean;
/**
* Indicates if this column is of type ObjectID
*/
objectId?: boolean;
/**
* Indicates if this column is a created date column.
*/
createDate?: boolean;
/**
* Indicates if this column is an update date column.
*/
updateDate?: boolean;
/**
* Indicates if this column is a delete date column.
*/
deleteDate?: boolean;
/**
* Indicates if this column is a version column.
*/
version?: boolean;
/**
* Indicates if this column is a treeChildrenCount column.
*/
treeChildrenCount?: boolean;
/**
* Indicates if this column is a treeLevel column.
*/
treeLevel?: boolean;
/**
* Column type. Must be one of the value from the ColumnTypes class.
*/
type: ColumnType;
/**
* Column name in the database.
*/
name?: string;
/**
* Column type's length. For example type = "string" and length = 100 means that ORM will create a column with
* type varchar(100).
*/
length?: string | number;
/**
* Column type's display width. Used only on some column types in MySQL.
* For example, INT(4) specifies an INT with a display width of four digits.
*/
width?: number;
/**
* Indicates if column's value can be set to NULL.
*/
nullable?: boolean;
/**
* Indicates if column value is not updated by "save" operation.
* It means you'll be able to write this value only when you first time insert the object.
* Default value is "false".
*
* @deprecated Please use the `update` option instead. Careful, it takes
* the opposite value to readonly.
*
*/
readonly?: boolean;
/**
* Indicates if column value is updated by "save" operation.
* If false you'll be able to write this value only when you first time insert the object.
* Default value is "true".
*/
update?: boolean;
/**
* Indicates if column is always selected by QueryBuilder and find operations.
* Default value is "true".
*/
select?: boolean;
/**
* Indicates if column is inserted by default.
* Default value is "true".
*/
insert?: boolean;
/**
* Specifies if this column will use AUTO_INCREMENT or not (e.g. generated number).
*/
generated?: true|"increment"|"uuid"|"rowid";
/**
* Specifies if column's value must be unique or not.
*/
unique?: boolean;
/**
* Extra column definition. Should be used only in emergency situations. Note that if you'll use this property
* auto schema generation will not work properly anymore. Avoid using it.
*/
columnDefinition?: string;
/**
* Column comment.
*/
comment?: string;
/**
* Default database value.
*/
default?: any;
/**
* ON UPDATE trigger. Works only for MySQL.
*/
onUpdate?: string;
/**
* The precision for a decimal (exact numeric) column (applies only for decimal column), which is the maximum
* number of digits that are stored for the values.
*/
precision?: number;
/**
* The scale for a decimal (exact numeric) column (applies only for decimal column), which represents the number
* of digits to the right of the decimal point and must not be greater than precision.
*/
scale?: number;
/**
* Puts ZEROFILL attribute on to numeric column. Works only for MySQL.
* If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column
*/
zerofill?: boolean;
/**
* Puts UNSIGNED attribute on to numeric column. Works only for MySQL.
*/
unsigned?: boolean;
/**
* Defines a column character set.
* Not supported by all database types.
*/
charset?: string;
/**
* Defines a column collation.
*/
collation?: string;
/**
* Array of possible enumerated values.
*/
enum?: any[]|Object;
/**
* Generated column expression. Supports only in MySQL.
*/
asExpression?: string;
/**
* Generated column type. Supports only in MySQL.
*/
generatedType?: "VIRTUAL"|"STORED";
/**
* Return type of HSTORE column.
* Returns value as string or as object.
*/
hstoreType?: "object"|"string";
/**
* Indicates if this column is an array.
* Can be simply set to true or array length can be specified.
* Supported only by postgres.
*/
array?: boolean;
/**
* Specifies a value transformer that is to be used to (un)marshal
* this column when reading or writing to the database.
*/
transformer?: ValueTransformer|ValueTransformer[];
}