任务三
This commit is contained in:
parent
07b902d87c
commit
cd473c0e17
|
|
@ -0,0 +1,51 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gen"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 连接数据库
|
||||
dsn := "root:Xu950329.@tcp(localhost:3306)/spa?charset=utf8mb4&parseTime=True&loc=Local"
|
||||
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("connect db fail: %w", err))
|
||||
}
|
||||
|
||||
// 获取项目根目录
|
||||
_, filename, _, _ := runtime.Caller(0)
|
||||
projectRoot := filepath.Dir(filepath.Dir(filepath.Dir(filename)))
|
||||
|
||||
// 创建gen实例
|
||||
g := gen.NewGenerator(gen.Config{
|
||||
OutPath: filepath.Join(projectRoot, "internal/data/query"),
|
||||
ModelPkgPath: filepath.Join(projectRoot, "internal/data/model"),
|
||||
Mode: gen.WithDefaultQuery | gen.WithQueryInterface,
|
||||
FieldNullable: true,
|
||||
FieldCoverable: false,
|
||||
FieldSignable: false,
|
||||
FieldWithIndexTag: true,
|
||||
FieldWithTypeTag: true,
|
||||
})
|
||||
|
||||
g.UseDB(db)
|
||||
|
||||
// 字段名映射,避免与方法名冲突
|
||||
fieldOpts := []gen.ModelOpt{
|
||||
gen.FieldRename("table_name", "TblName"),
|
||||
gen.FieldRename("table", "TblName"), // 避免与Table()方法冲突
|
||||
}
|
||||
|
||||
// 生成所有表的model和query
|
||||
allTables := g.GenerateAllTable(fieldOpts...)
|
||||
g.ApplyBasic(allTables...)
|
||||
|
||||
// 执行生成
|
||||
g.Execute()
|
||||
}
|
||||
Loading…
Reference in New Issue