Templates for the "gnorm" database management engine.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

83 lines
2.3 KiB

DBType = "postgres"
# ConnStr is the connection string for the database where the schema is
# generated from
ConnStr = "dbname=postgres host=127.0.0.1 sslmode=disable user=postgres password=postgres"
Schemas = ["public"]
ExcludeTables = ["schema_migrations"]
# Run this command after generation, to lint the generated files
PostRun = ["goimports", "-w", "$GNORMFILE"]
# PascalCase should be used for our go database
NameConversion = "{{pascal .}}"
# Generate in the current directory. If this is changed, the RootPkg
# below should match the folder name.
OutputDir = "."
[Params]
# RootPkg is the package declaration for the output dir. It should match the
# directory name above.
RootPkg = "postgres"
# RootImport is the import path for the output directory.
RootImport = "git.klink.asia/paul/kregistry/database/postgres"
[SchemaPaths]
"fields.go" = "_templates/fields.gotmpl"
"db.go" = "_templates/db.gotmpl"
[TablePaths]
"{{toLower .Table}}/{{toLower .Table}}.go" = "_templates/table.gotmpl"
[EnumPaths]
"enum/{{toLower .Enum}}.go" = "_templates/enum.gotmpl"
[TypeMap]
"timestamp with time zone" = "time.Time"
"timestamp without time zone" = "time.Time"
"timestamptz" = "time.Time"
"timestamp" = "time.Time"
"varchar" = "string"
"text" = "string"
"citext" = "string"
"boolean" = "bool"
"uuid" = "uuid.UUID" # from "github.com/satori/go.uuid"
"character varying" = "string"
"character" = "string"
"bigserial" = "int64"
"bigint" = "int64"
"integer" = "int"
"int4" = "int32"
"numeric" = "float64"
"real" = "float64"
"hstore" = "hstore.Hstore" # from "github.com/lib/pq/hstore"
"jsonb" = "postgres.Jsonb" # package name here has to be kept in sync with RootPkg.
"bytea" = "postgres.Bytes"
# needs to be kept in sync with the enum template's package name
"rank" = "enum.Rank"
[NullableTypeMap]
"timestamp with time zone" = "pq.NullTime"
"timestamptz" = "pq.NullTime"
"timestamp" = "pq.NullTime"
"text" = "sql.NullString"
"citext" = "sql.NullString"
"varchar" = "sql.NullString"
"public.citext" = "sql.NullString"
"boolean" = "sql.NullBool"
"uuid" = "uuid.NullUUID"
"character varying" = "sql.NullString"
"character" = "sql.NullString"
"integer" = "sql.NullInt64"
"bigint" = "sql.NullInt64"
"numeric" = "sql.NullFloat64"
"real" = "sql.NullFloat64"
"hstore" = "hstore.Hstore"
"jsonb" = "postgres.Jsonb" # package name here has to be kept in sync with RootPkg.
"bytea" = "postgres.NullBytes"