package main import ( m "platform/web/models" "gorm.io/driver/postgres" "gorm.io/gen" "gorm.io/gen/field" "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, }, }, ) g := gen.NewGenerator(gen.Config{ OutPath: "web/queries", ModelPkgPath: "models", Mode: gen.WithDefaultQuery | gen.WithoutContext, }) g.UseDB(db) models := g.GenerateAllTable( gen.FieldType("created_at", "common.LocalDateTime"), gen.FieldType("updated_at", "common.LocalDateTime"), gen.FieldType("deleted_at", "common.LocalDateTime"), ) g.ApplyBasic(models...) 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) g.Execute() }