|
- package db
-
- import (
- "egg-im/config"
- "egg-im/pkg/logger"
- "egg-im/pkg/util"
- "fmt"
-
- "github.com/go-redis/redis"
- "github.com/jinzhu/gorm"
-
- _ "github.com/go-sql-driver/mysql"
- )
-
- var (
- DB *gorm.DB
- RedisCli *redis.Client
- RedisUtil *util.RedisUtil
- )
-
- func Init() {
- InitMysql(config.MySQL)
- InitRedis(config.RedisIP, config.RedisPassword)
- }
-
- // InitMysql 初始化MySQL
- func InitMysql(dataSource string) {
- logger.Logger.Info("init mysql")
- var err error
- DB, err = gorm.Open("mysql", dataSource)
- if err != nil {
- panic(err)
- }
- DB.SingularTable(true)
- DB.LogMode(true)
- logger.Logger.Info("init mysql ok")
- }
-
- // InitRedis 初始化Redis
- func InitRedis(addr, password string) {
- logger.Logger.Info("init redis")
- RedisCli = redis.NewClient(&redis.Options{
- Addr: addr,
- DB: 1, //TODO::IM统一放1号库
- Password: password,
- })
-
- _, err := RedisCli.Ping().Result()
- if err != nil {
- panic(err)
- }
-
- RedisUtil = util.NewRedisUtil(RedisCli)
- logger.Logger.Info("init redis ok")
- }
-
- // InitByTest 初始化数据库配置,仅用在单元测试
- func InitByTest() {
- fmt.Println("init db")
- logger.Target = logger.Console
-
- InitMysql(config.MySQL)
- InitRedis(config.RedisIP, config.RedisPassword)
- }
|