Files
bj_power/bj_power_wms/internal/svc/service_context.go
T

45 lines
829 B
Go
Raw Normal View History

2026-08-28 15:06:01 +08:00
package svc
import (
"bj_power_wms/ent"
"bj_power_wms/internal/config"
"bj_power_wms/internal/db"
)
type ServiceContext struct {
Config config.Config
EntClient *ent.Client
}
func NewServiceContext(c config.Config) *ServiceContext {
2026-08-29 15:30:25 +08:00
conf := db.DatabaseConf{
2026-08-28 15:06:01 +08:00
Host: c.Postgres.Host,
Port: c.Postgres.Port,
User: c.Postgres.User,
Password: c.Postgres.Password,
Dbname: c.Postgres.DBName,
2026-08-29 15:30:25 +08:00
}
// 目标数据库不存在则自动创建
if err := db.EnsureDB(conf); err != nil {
panic(err)
}
entClient := db.MustNewDB(conf)
2026-08-28 15:06:01 +08:00
// 启动时自动建表
if err := db.AutoMigrate(entClient); err != nil {
panic(err)
}
// 首次启动预置基础数据
if err := db.SeedIfEmpty(entClient); err != nil {
panic(err)
}
return &ServiceContext{
Config: c,
EntClient: entClient,
}
}