2025-06-15 01:42:51 +08:00

75 lines
1.6 KiB
Go

package operation
import (
"game/common/constant"
"game/common/model/user"
"game/common/utils"
"game/server/db/config"
"github.com/fox/fox/db"
"github.com/fox/fox/log"
"github.com/go-redis/redis/v8"
"gorm.io/gorm"
)
var (
UserRedis *redis.Client
AccountRedis *redis.Client
UserDB *gorm.DB
LogDB *gorm.DB
)
func InitRedis() {
log.Debug("init redis")
var err error
cfg := &config.Cfg.Redis
UserRedis, err = db.InitRedis(cfg.Password, cfg.Host, cfg.Port, constant.Redis1User)
if err != nil {
log.Fatal(err.Error())
return
}
utils.AutoSetRedisPool(UserRedis)
AccountRedis, err = db.InitRedis(cfg.Password, cfg.Host, cfg.Port, constant.Redis2Account)
if err != nil {
log.Fatal(err.Error())
return
}
utils.AutoSetRedisPool(AccountRedis)
}
func InitDb() {
log.Debug("init db")
var err error
cfg := &config.Cfg.UserDb
UserDB, err = db.InitMysql(cfg.Username, cfg.Password, cfg.Host, cfg.Port, cfg.DbName)
if err != nil {
log.Fatal(err.Error())
return
}
cfgClickhouse := &config.Cfg.LogDb
LogDB, err = db.InitClickHouse(cfgClickhouse.Username, cfgClickhouse.Password, cfgClickhouse.Host, cfgClickhouse.Port, cfgClickhouse.DbName)
if err != nil {
log.Fatal(err.Error())
return
}
// 自动迁移game库表结构
err = UserDB.AutoMigrate(
&user.UserAccount{},
&user.User{},
&user.UserResources{},
)
if err != nil {
log.Fatal(err.Error())
return
}
// 自动迁移game_log库表结构
loginLog := &user.UserLoginLog{}
if err1 := db.AutoMigrateClickHouse(LogDB, loginLog.TableOptions(), loginLog); err1 != nil {
err = err1
}
if err != nil {
log.Fatal(err.Error())
return
}
}