| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package dbstart
-
- // import (
- // "log"
-
- // "git.x2erp.com/qdy/go-base/config"
- // "git.x2erp.com/qdy/go-base/logger"
- // "git.x2erp.com/qdy/go-db/factory/database"
- // )
-
- // // DBBootstrapper 数据库启动器
- // type DBBootstrapper struct {
- // DBFactories map[string]*database.DBFactory // 改为map存储多个数据库实例
- // cfg config.IConfig
- // }
-
- // // NewDBBootstrapper 创建数据库启动器
- // func NewDBBootstrapper(cfg config.IConfig) *DBBootstrapper {
- // return &DBBootstrapper{
- // DBFactories: make(map[string]*database.DBFactory),
- // cfg: cfg,
- // }
- // }
-
- // // Init 初始化默认数据库
- // func (db *DBBootstrapper) Init() *DBBootstrapper {
- // if db.cfg == nil {
- // log.Fatal("配置未初始化,请先传入配置")
- // }
-
- // // // 初始化默认数据库
- // // dbCfg := db.cfg.GetDatabaseConfig()
- // // if dbCfg == nil {
- // // log.Fatal("默认数据库配置未找到")
- // // }
-
- // // log.Printf("正在连接默认数据库: %s:%d/%s",
- // // dbCfg.Host, dbCfg.Port, dbCfg.Database)
-
- // dbFactory, err := database.GetDefaultDBFactory()
- // if err != nil {
- // log.Fatalf("默认数据库连接失败: %v", err)
- // }
-
- // db.DBFactories["default"] = dbFactory
- // log.Println("默认数据库连接成功")
-
- // return db
- // }
-
- // // GetDBFactory 获取数据库工厂
- // func (db *DBBootstrapper) GetDBFactory(dbName string) *database.DBFactory {
- // // 如果已经初始化,直接返回
- // if factory, exists := db.DBFactories[dbName]; exists {
- // return factory
- // }
-
- // // 如果还没初始化,按需初始化
- // dbFactory, err := database.GetDBFactory(dbName)
- // if err != nil {
- // log.Printf("❌ 获取数据库 '%s' 失败: %v", dbName, err)
- // return nil
- // }
-
- // db.DBFactories[dbName] = dbFactory
- // return dbFactory
- // }
-
- // // GetDefaultDBFactory 获取默认数据库工厂
- // func (db *DBBootstrapper) GetDefaultDBFactory() *database.DBFactory {
- // return db.GetDBFactory("default")
- // }
-
- // // Close 关闭所有数据库连接
- // func (db *DBBootstrapper) Close() {
-
- // for name, factory := range db.DBFactories {
- // logger.Info("正在关闭数据库: %s, factory: %v", name, factory)
- // if factory != nil {
- // factory.Close()
- // logger.Info("数据库 '%s' 连接已关闭", name)
- // } else {
- // logger.Error("⚠️ 警告: 数据库 '%s' 的 factory 为 nil", name)
- // }
- // }
-
- // // 清空map
- // db.DBFactories = make(map[string]*database.DBFactory)
- // logger.Info("所有数据库连接已关闭.")
- // }
-
- // // 在 dbstart 包中
- // func (db *DBBootstrapper) OnShutdown() {
- // db.Close()
- // }
|