gen
gen copied to clipboard
目标数据库定位失败 The target database failed to be located
我在postgresql的dsn已经明确写了自定义的dbname,但是最后g.ApplyBasic(g.GenerateAllTable()...,)还是只扫描了默认的postgres数据库。 I've explicitly written a custom dbname in postgresql's dsn, but in the end g. ApplyBasic(g.GenerateAllTable()...,) still only scans the default postgres database.
` g := gen.NewGenerator(gen.Config{ OutPath: "./cmd/generate/result/query", // 生成的查询类代码的输出路径 Mode: gen.WithoutContext | gen.WithDefaultQuery | gen.WithQueryInterface, })
gormdb, _ := gorm.Open(postgres.Open("host=127.0.0.1 port=5432 user=postgres password=a778699 dbname=compass sslmode=disable timezone=Asia/Shanghai"))
g.UseDB(gormdb)
g.ApplyBasic(
g.GenerateAllTable()...,
)
g.Execute()`
请问您这个问题解决了吗?我在使用 PostgreSQL 时遇到了类似的情况,g.ApplyBasic(g.GenerateAllTable()...,) 报错:
2024/03/25 18:44:45 /web-backend/cmd/postgres/generate.go:34 insufficient arguments
[0.238ms] [rows:-] SELECT * FROM "users" LIMIT 1
请问您这个问题解决了吗?我在使用 PostgreSQL 时遇到了类似的情况,
g.ApplyBasic(g.GenerateAllTable()...,)报错:2024/03/25 18:44:45 /web-backend/cmd/postgres/generate.go:34 insufficient arguments [0.238ms] [rows:-] SELECT * FROM "users" LIMIT 1
我使用以下代码切换到目标数据库
gormdb, _ := gorm.Open(postgres.Open("host=127.0.0.1 port=5432 user=postgres password=Post778699. dbname=reportform sslmode=disable timezone=Asia/Shanghai"))
// 切换到目标数据库(注意,直接写schemas名称,并不需要数据库名称)
if targetDB := gormdb.Exec("SET search_path TO " + schemaName); targetDB.Error != nil {
panic("无法切换到目标数据库: " + targetDB.Error.Error())
}
g.UseDB(gormdb) // reuse your gorm db
g.ApplyBasic(
// Generate structs from all tables of current database
g.GenerateAllTable()...,
)
// Generate the code
g.Execute()
gormdb, _ := gorm.Open(postgres.Open("host=127.0.0.1 port=5432 user=postgres password=Post778699. dbname=reportform sslmode=disable timezone=Asia/Shanghai"))
// 切换到目标数据库(注意,直接写schemas名称,并不需要数据库名称) if targetDB := gormdb.Exec("SET search_path TO " + schemaName); targetDB.Error != nil { panic("无法切换到目标数据库: " + targetDB.Error.Error()) }
g.UseDB(gormdb) // reuse your gorm db
g.ApplyBasic( // Generate structs from all tables of current database g.GenerateAllTable()..., ) // Generate the code g.Execute()
请问这个可行嘛,我的还是报错: ··· 2024/06/01 11:33:26 /config/workspace/ProdDir/go-devops/cmd/gen/generate.go:68 [error] generate struct from table fail: insufficient arguments panic: generate struct fail ···
请问您这个问题解决了吗?我在使用 PostgreSQL 时遇到了类似的情况,
g.ApplyBasic(g.GenerateAllTable()...,)报错:2024/03/25 18:44:45 /web-backend/cmd/postgres/generate.go:34 insufficient arguments [0.238ms] [rows:-] SELECT * FROM "users" LIMIT 1
@MondayCha @sunerpy 将gorm.io/driver/postgres升级到最新版即可