Data model generator for postgres database.

This commit is contained in:
sub0Zero 2019-03-04 19:35:49 +01:00 committed by zer0sub
parent 92edc96c9a
commit 319c9f757d
9 changed files with 505 additions and 213 deletions

View file

@ -1,30 +1,39 @@
package generator
var TableTemplate = `package table
var SqlBuilderTableTemplate = `package table
import "github.com/sub0Zero/go-sqlbuilder/sqlbuilder"
type {{camelize .TableInfo.Name}}Table struct {
type {{.ToGoStructName}} struct {
sqlbuilder.Table
//Columns
{{- range .TableInfo.Columns}}
{{camelize .Name}} sqlbuilder.NonAliasColumn
{{- range .Columns}}
{{.ToGoFieldName}} sqlbuilder.NonAliasColumn
{{- end}}
}
var {{camelize .TableInfo.Name}} = &{{camelize .TableInfo.Name}}Table{
Table: *sqlbuilder.NewTable("{{.TableInfo.Name}}", {{.ColumnNameList ", "}}),
var {{.ToGoVarName}} = &{{.ToGoStructName}}{
Table: *sqlbuilder.NewTable("{{.Name}}", {{.ToGoColumnFieldList ", "}}),
//Columns
{{- range .TableInfo.Columns}}
{{camelize .Name}}: {{columnName $.TableInfo.Name .Name}},
{{- range .Columns}}
{{.ToGoFieldName}}: {{.ToGoVarName}},
{{- end}}
}
var (
{{- range .TableInfo.Columns}}
{{columnName $.TableInfo.Name .Name}} = sqlbuilder.IntColumn("{{.Name}}", {{if .IsNullable}}sqlbuilder.Nullable{{else}}sqlbuilder.NotNullable{{end}})
{{- range .Columns}}
{{.ToGoVarName}} = sqlbuilder.IntColumn("{{.Name}}", {{if .IsNullable}}sqlbuilder.Nullable{{else}}sqlbuilder.NotNullable{{end}})
{{- end}}
)
`
var DataModelTemplate = `package model
type {{.ToGoModelStructName}} struct {
{{- range .Columns}}
{{.ToGoDMFieldName}} {{.ToGoType}} {{if .IsUnique}}` + "`sql:\"unique\"`" + ` {{end}}
{{- end}}
}
`