Gen Tool
Gen Tool is a single binary without dependencies can be used to generate structs from database
Install
go install gorm.io/gen/tools/gentool@latestUsage
gentool -h
Usage of gentool:
-c string
config file path
-db string
input mysql or postgres or sqlite or sqlserver. consult[https://gorm.io/docs/connecting_to_the_database.html] (default "mysql")
-dsn string
consult[https://gorm.io/docs/connecting_to_the_database.html]
-fieldNullable
generate with pointer when field is nullable
-fieldWithIndexTag
generate field with gorm index tag
-fieldWithTypeTag
generate field with gorm column type tag
-modelPkgName string
generated model code's package name
-outFile string
query code file name, default: gen.go
-outPath string
specify a directory for output (default "./dao/query")
-tables string
enter the required data table or leave it blank
-onlyModel
only generate models (without query file)
-withUnitTest
generate unit test for query code
-fieldSignable
detect integer field's unsigned type, adjust generated data typec
Configuration file name, default value "", command line options have higher priority than configuration file.
db
Specify dirver dialector, default value "mysql", refer: https://gorm.io/docs/connecting_to_the_database.html
dsn
DSN that used to connect database, refer: https://gorm.io/docs/connecting_to_the_database.html
fieldNullable
Generate with pointer when field is nullable
fieldWithIndexTag
Generate field with gorm index tag
fieldWithTypeTag
Generate field with gorm column type tag
modelPkgName
Generated model code's package name.
outFile
Genrated query code file name, default: gen.go
outPath
Specify a directory for output (default "./dao/query")
tables
Specify tables want to genrated from, default all tables.
eg :
--tables="orders" # generate from `orders`
--tables="orders,users" # generate from `orders` and `users`
--tables="" # generate from all tables
Generate some tables code.
withUnitTest
Generate unit test, default value false, options: false / true
fieldSignable
Use signable datatype as field type, default value false, options: false / true
Example
gentool -dsn "user:pwd@tcp(localhost:3306)/database?charset=utf8mb4&parseTime=True&loc=Local" -tables "orders,doctor"
gentool -c "./gen.tool"version: "0.1"
database:
# consult[https://gorm.io/docs/connecting_to_the_database.html]"
dsn : "username:password@tcp(address:port)/db?charset=utf8mb4&parseTime=true&loc=Local"
# input mysql or postgres or sqlite or sqlserver. consult[https://gorm.io/docs/connecting_to_the_database.html]
db : "mysql"
# enter the required data table or leave it blank.You can input : orders,users,goods
tables : "user"
# specify a directory for output
outPath : "./dao/query"
# query code file name, default: gen.go
outFile : ""
# generate unit test for query code
withUnitTest : false
# generated model code's package name
modelPkgName : ""
# generate with pointer when field is nullable
fieldNullable : false
# generate field with gorm index tag
fieldWithIndexTag : false
# generate field with gorm column type tag
fieldWithTypeTag : false