2026-07-26 18:24:13 +08:00
|
|
|
// Package impl 统一创建数据库、Redis、内存缓存与日志基础设施。
|
|
|
|
|
package impl
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"git.apinb.com/bsm-sdk/core/cache/redis"
|
2026-07-29 18:38:01 +08:00
|
|
|
"git.apinb.com/bsm-sdk/core/database"
|
2026-07-26 18:24:13 +08:00
|
|
|
"git.apinb.com/bsm-sdk/core/logger"
|
|
|
|
|
"git.apinb.com/bsm-sdk/core/with"
|
|
|
|
|
"git.apinb.com/heqiapp/platforms/backend/api/internal/config"
|
|
|
|
|
"github.com/patrickmn/go-cache"
|
|
|
|
|
"gorm.io/gorm"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
RedisService *redis.RedisClient
|
|
|
|
|
DBService *gorm.DB
|
|
|
|
|
MemoryService *cache.Cache
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// NewImpl 与 sample/server 保持一致,所有进程通过此处创建共享基础设施。
|
|
|
|
|
func NewImpl() {
|
|
|
|
|
MemoryService = with.Memory(nil)
|
|
|
|
|
RedisService = with.RedisCache(config.Spec.Cache)
|
2026-07-29 18:38:01 +08:00
|
|
|
// HTTP 服务启动只建立连接。表结构迁移由 platform-cli migrate 显式执行,
|
|
|
|
|
// 避免每次重启都对全部远程表执行耗时的元数据扫描。
|
|
|
|
|
migrateTables := database.MigrateTables
|
|
|
|
|
database.MigrateTables = nil
|
|
|
|
|
defer func() { database.MigrateTables = migrateTables }()
|
2026-07-26 18:24:13 +08:00
|
|
|
DBService = with.Databases(config.Spec.Databases, nil)
|
|
|
|
|
logger.New(nil)
|
|
|
|
|
}
|