Files
platform/cmd/gen/main.go

52 lines
1.2 KiB
Go
Raw Normal View History

2025-03-18 10:13:57 +08:00
package main
import (
2025-04-03 13:30:57 +08:00
m "platform/web/models"
2025-03-18 10:13:57 +08:00
"gorm.io/driver/postgres"
"gorm.io/gen"
2025-04-03 13:30:57 +08:00
"gorm.io/gen/field"
2025-03-18 10:13:57 +08:00
"gorm.io/gorm"
"gorm.io/gorm/schema"
)
func main() {
db, _ := gorm.Open(
postgres.Open("host=localhost user=test password=test dbname=app port=5432 sslmode=disable TimeZone=Asia/Shanghai"),
&gorm.Config{
NamingStrategy: schema.NamingStrategy{
SingularTable: true,
},
},
)
2025-03-18 17:57:07 +08:00
g := gen.NewGenerator(gen.Config{
OutPath: "web/queries",
ModelPkgPath: "models",
Mode: gen.WithDefaultQuery | gen.WithoutContext,
})
2025-03-18 10:13:57 +08:00
g.UseDB(db)
models := g.GenerateAllTable(
gen.FieldType("created_at", "common.LocalDateTime"),
gen.FieldType("updated_at", "common.LocalDateTime"),
gen.FieldType("deleted_at", "common.LocalDateTime"),
)
2025-03-18 10:13:57 +08:00
g.ApplyBasic(models...)
2025-04-03 13:30:57 +08:00
modelChannel := g.GenerateModel("channel",
gen.FieldRelateModel(field.BelongsTo, "Node", &m.Node{}, &field.RelateConfig{
RelatePointer: true,
}),
gen.FieldRelateModel(field.BelongsTo, "User", &m.User{}, &field.RelateConfig{
RelatePointer: true,
}),
gen.FieldRelateModel(field.BelongsTo, "Proxy", &m.Proxy{}, &field.RelateConfig{
RelatePointer: true,
}),
)
g.ApplyBasic(modelChannel)
2025-03-18 10:13:57 +08:00
g.Execute()
}