安装
go get -u gorm.io/gen
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gen"
"gorm.io/gorm"
)
func main() {
// 数据库连接
dsn := "root:root@tcp(127.0.0.1:3306)/wbrj_sample?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
g := gen.NewGenerator(gen.Config{
OutPath: "model", // 生成的模型代码存放目录
ModelPkgPath: "model", // 模型包路径
FieldNullable: true, // 字段可为空
FieldCoverable: false, // 不覆盖已存在的字段
FieldSignable: false, // 生成字段的符号表示(如 `sql.NullString`)
})
// 设置数据库连接
g.UseDB(db)
// 生成指定表的模型
//g.GenerateModel("dade")
// 获取数据库中的所有表
tables, err := db.Migrator().GetTables()
if err!= nil {
panic("failed to get tables")
}
// 生成所有表的模型
for _, table := range tables {
g.GenerateModel(table)
}
// 执行生成
g.Execute()
}