42
42
ignoreViews string
43
43
ignoreEnums string
44
44
45
- destDir string
45
+ destDir string
46
+ modelPkg string
47
+ tablePkg string
48
+ viewPkg string
49
+ enumPkg string
46
50
)
47
51
48
52
func init () {
@@ -71,6 +75,10 @@ func init() {
71
75
flag .StringVar (& ignoreEnums , "ignore-enums" , "" , `Comma-separated list of enums to ignore` )
72
76
73
77
flag .StringVar (& destDir , "path" , "" , "Destination dir for files generated." )
78
+ flag .StringVar (& modelPkg , "model-pkg" , "" , "Package name for the model files generated" )
79
+ flag .StringVar (& tablePkg , "table-pkg" , "" , "Package name for the table files generated" )
80
+ flag .StringVar (& viewPkg , "view-pkg" , "" , "Package name for the view files generated" )
81
+ flag .StringVar (& enumPkg , "enum-pkg" , "" , "Package name for the enum files generated" )
74
82
}
75
83
76
84
func main () {
@@ -170,6 +178,7 @@ func usage() {
170
178
"source" , "dsn" , "host" , "port" , "user" , "password" , "dbname" , "schema" , "params" , "sslmode" ,
171
179
"path" ,
172
180
"ignore-tables" , "ignore-views" , "ignore-enums" ,
181
+ "model-pkg" , "table-pkg" , "view-pkg" , "enum-pkg" ,
173
182
}
174
183
175
184
for _ , name := range order {
@@ -243,10 +252,16 @@ func genTemplate(dialect jet.Dialect, ignoreTables []string, ignoreViews []strin
243
252
return strslice .Contains (ignoreEnums , strings .ToLower (enum .Name ))
244
253
}
245
254
255
+ model := template .DefaultModel ()
256
+
257
+ if modelPkg != "" {
258
+ model = model .UsePath ("/" + modelPkg )
259
+ }
260
+
246
261
return template .Default (dialect ).
247
262
UseSchema (func (schemaMetaData metadata.Schema ) template.Schema {
248
263
return template .DefaultSchema (schemaMetaData ).
249
- UseModel (template . DefaultModel () .
264
+ UseModel (model .
250
265
UseTable (func (table metadata.Table ) template.TableModel {
251
266
if shouldSkipTable (table ) {
252
267
return template.TableModel {Skip : true }
@@ -271,18 +286,33 @@ func genTemplate(dialect jet.Dialect, ignoreTables []string, ignoreViews []strin
271
286
if shouldSkipTable (table ) {
272
287
return template.TableSQLBuilder {Skip : true }
273
288
}
289
+
290
+ if tablePkg != "" {
291
+ return template .DefaultTableSQLBuilder (table ).UsePath ("/" + tablePkg )
292
+ }
293
+
274
294
return template .DefaultTableSQLBuilder (table )
275
295
}).
276
296
UseView (func (table metadata.Table ) template.ViewSQLBuilder {
277
297
if shouldSkipView (table ) {
278
298
return template.ViewSQLBuilder {Skip : true }
279
299
}
300
+
301
+ if viewPkg != "" {
302
+ return template .DefaultViewSQLBuilder (table ).UsePath ("/" + viewPkg )
303
+ }
304
+
280
305
return template .DefaultViewSQLBuilder (table )
281
306
}).
282
307
UseEnum (func (enum metadata.Enum ) template.EnumSQLBuilder {
283
308
if shouldSkipEnum (enum ) {
284
309
return template.EnumSQLBuilder {Skip : true }
285
310
}
311
+
312
+ if enumPkg != "" {
313
+ return template .DefaultEnumSQLBuilder (enum ).UsePath ("/" + enumPkg )
314
+ }
315
+
286
316
return template .DefaultEnumSQLBuilder (enum )
287
317
}),
288
318
)
0 commit comments