feat: add generator skip option for table columns
Signed-off-by: Alexander Trost <galexrt@googlemail.com>
This commit is contained in:
parent
f9ed359785
commit
60ba05b6fb
5 changed files with 73 additions and 9 deletions
|
|
@ -11,13 +11,6 @@ var autoGenWarningTemplate = `
|
|||
`
|
||||
|
||||
var tableSQLBuilderTemplate = `
|
||||
{{define "column-list" -}}
|
||||
{{- range $i, $c := . }}
|
||||
{{- $field := columnField $c}}
|
||||
{{- if gt $i 0 }}, {{end}}{{$field.Name}}Column
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
|
||||
package {{package}}
|
||||
|
||||
import (
|
||||
|
|
@ -33,7 +26,9 @@ type {{structImplName}} struct {
|
|||
// Columns
|
||||
{{- range $i, $c := .Columns}}
|
||||
{{- $field := columnField $c}}
|
||||
{{- if not $field.Skip}}
|
||||
{{$field.Name}} {{dialect.PackageName}}.Column{{$field.Type}} {{golangComment .Comment}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
|
||||
AllColumns {{dialect.PackageName}}.ColumnList
|
||||
|
|
@ -77,10 +72,12 @@ func new{{tableTemplate.TypeName}}Impl(schemaName, tableName, alias string) {{st
|
|||
var (
|
||||
{{- range $i, $c := .Columns}}
|
||||
{{- $field := columnField $c}}
|
||||
{{- if not $field.Skip }}
|
||||
{{$field.Name}}Column = {{dialect.PackageName}}.{{$field.Type}}Column("{{$c.Name}}")
|
||||
{{- end}}
|
||||
allColumns = {{dialect.PackageName}}.ColumnList{ {{template "column-list" .Columns}} }
|
||||
mutableColumns = {{dialect.PackageName}}.ColumnList{ {{template "column-list" .MutableColumns}} }
|
||||
{{- end}}
|
||||
allColumns = {{dialect.PackageName}}.ColumnList{ {{columnList .Columns}} }
|
||||
mutableColumns = {{dialect.PackageName}}.ColumnList{ {{columnList .MutableColumns}} }
|
||||
)
|
||||
|
||||
return {{structImplName}}{
|
||||
|
|
@ -89,7 +86,9 @@ func new{{tableTemplate.TypeName}}Impl(schemaName, tableName, alias string) {{st
|
|||
//Columns
|
||||
{{- range $i, $c := .Columns}}
|
||||
{{- $field := columnField $c}}
|
||||
{{- if not $field.Skip }}
|
||||
{{$field.Name}}: {{$field.Name}}Column,
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
|
||||
AllColumns: allColumns,
|
||||
|
|
@ -124,7 +123,9 @@ import (
|
|||
type {{$modelTableTemplate.TypeName}} struct {
|
||||
{{- range .Columns}}
|
||||
{{- $field := structField .}}
|
||||
{{- if not $field.Skip}}
|
||||
{{$field.Name}} {{$field.Type.Name}} ` + "{{$field.TagsString}}" + ` {{golangComment .Comment}}
|
||||
{{- end }}
|
||||
{{- end}}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -159,6 +159,7 @@ type TableModelField struct {
|
|||
Name string
|
||||
Type Type
|
||||
Tags []string
|
||||
Skip bool
|
||||
}
|
||||
|
||||
// DefaultTableModelField returns default TableModelField implementation
|
||||
|
|
@ -173,6 +174,7 @@ func DefaultTableModelField(columnMetaData metadata.Column) TableModelField {
|
|||
Name: dbidentifier.ToGoIdentifier(columnMetaData.Name),
|
||||
Type: getType(columnMetaData),
|
||||
Tags: tags,
|
||||
Skip: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -217,6 +217,17 @@ func processTableSQLBuilder(fileTypes, dirPath string,
|
|||
return insertedRowAlias(dialect)
|
||||
},
|
||||
"golangComment": formatGolangComment,
|
||||
"columnList": func(columns []metadata.Column) string {
|
||||
names := []string{}
|
||||
for _, col := range columns {
|
||||
bc := tableSQLBuilder.Column(col)
|
||||
if bc.Skip {
|
||||
continue
|
||||
}
|
||||
names = append(names, bc.Name+"Column")
|
||||
}
|
||||
return strings.Join(names, ", ")
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to generate table sql builder type %s: %w", tableSQLBuilder.TypeName, err)
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ func (tb TableSQLBuilder) UseColumn(columnsFunc func(column metadata.Column) Tab
|
|||
|
||||
// TableSQLBuilderColumn is template for table sql builder column
|
||||
type TableSQLBuilderColumn struct {
|
||||
Skip bool
|
||||
Name string
|
||||
Type string
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue