db.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package db
  2. import (
  3. "app.yhyue.com/moapp/jypkg/middleground"
  4. "github.com/gogf/gf/v2/frame/g"
  5. "log"
  6. "app.yhyue.com/moapp/jybase/mysql"
  7. "github.com/gogf/gf/v2/os/gcfg"
  8. "github.com/gogf/gf/v2/os/gctx"
  9. "app.yhyue.com/moapp/jybase/mongodb"
  10. "app.yhyue.com/moapp/jybase/redis"
  11. "app.yhyue.com/moapp/jypkg/compatible"
  12. )
  13. var (
  14. MgoLog *mongodb.MongodbSim
  15. Mgo *mongodb.MongodbSim
  16. Mysql *mysql.Mysql
  17. Tidb *mysql.Mysql
  18. TidbPoint *mysql.Mysql
  19. Compatible *compatible.Compatible
  20. MiddleGround *middleground.Middleground
  21. )
  22. type MgoConf struct {
  23. Address string
  24. Size int
  25. DbName string
  26. ReplSet string
  27. UserName string
  28. Password string
  29. Collection string
  30. Collection_back string
  31. }
  32. type MysqlConf struct {
  33. DbName string `json:"dbName"`
  34. Address string `json:"address"`
  35. UserName string `json:"userName"`
  36. PassWord string `json:"passWord"`
  37. MaxOpenConns int `json:"maxOpenConns"`
  38. MaxIdleConns int `json:"maxIdleConns"`
  39. }
  40. func init() {
  41. redis.InitRedis(gcfg.Instance().MustGet(gctx.New(), "databases.redis", "").String())
  42. log.Println("初始化 redis")
  43. var mgologConf MgoConf
  44. if err := gcfg.Instance().MustGet(gctx.New(), "databases.mogLog").Scan(&mgologConf); err == nil {
  45. MgoLog = &mongodb.MongodbSim{
  46. MongodbAddr: mgologConf.Address,
  47. Size: mgologConf.Size,
  48. DbName: mgologConf.DbName,
  49. ReplSet: mgologConf.ReplSet,
  50. UserName: mgologConf.UserName,
  51. Password: mgologConf.Password,
  52. }
  53. MgoLog.InitPool()
  54. log.Printf("初始化 mongodb log 完成 %+v\n", mgologConf)
  55. }
  56. var mgoConf MgoConf
  57. if err := gcfg.Instance().MustGet(gctx.New(), "databases.mongodb").Scan(&mgoConf); err == nil {
  58. Mgo = &mongodb.MongodbSim{
  59. MongodbAddr: mgoConf.Address,
  60. Size: mgoConf.Size,
  61. DbName: mgoConf.DbName,
  62. ReplSet: mgoConf.ReplSet,
  63. UserName: mgoConf.UserName,
  64. Password: mgoConf.Password,
  65. }
  66. Mgo.InitPool()
  67. log.Printf("初始化 mongodb 完成 %+v\n", mgoConf)
  68. }
  69. var mysqlConf MysqlConf
  70. if err := gcfg.Instance().MustGet(gctx.New(), "databases.mysql").Scan(&mysqlConf); err == nil {
  71. if mysqlConf.Address != "" {
  72. log.Println("--初始化 mysql--")
  73. Mysql = &mysql.Mysql{
  74. Address: mysqlConf.Address,
  75. UserName: mysqlConf.UserName,
  76. PassWord: mysqlConf.PassWord,
  77. DBName: mysqlConf.DbName,
  78. MaxOpenConns: mysqlConf.MaxOpenConns,
  79. MaxIdleConns: mysqlConf.MaxIdleConns,
  80. }
  81. Mysql.Init()
  82. }
  83. }
  84. var tidbConf MysqlConf
  85. if err := gcfg.Instance().MustGet(gctx.New(), "databases.tidb").Scan(&tidbConf); err == nil {
  86. if tidbConf.Address != "" {
  87. log.Println("--初始化 tidb--")
  88. Tidb = &mysql.Mysql{
  89. Address: tidbConf.Address,
  90. UserName: tidbConf.UserName,
  91. PassWord: tidbConf.PassWord,
  92. DBName: tidbConf.DbName,
  93. MaxOpenConns: tidbConf.MaxOpenConns,
  94. MaxIdleConns: tidbConf.MaxIdleConns,
  95. }
  96. Tidb.Init()
  97. }
  98. }
  99. var tidbPointConf MysqlConf
  100. if err := gcfg.Instance().MustGet(gctx.New(), "databases.tidbPoint").Scan(&tidbPointConf); err == nil {
  101. if tidbPointConf.Address != "" {
  102. log.Println("--初始化 tidb--")
  103. TidbPoint = &mysql.Mysql{
  104. Address: tidbPointConf.Address,
  105. UserName: tidbPointConf.UserName,
  106. PassWord: tidbPointConf.PassWord,
  107. DBName: tidbPointConf.DbName,
  108. MaxOpenConns: tidbPointConf.MaxOpenConns,
  109. MaxIdleConns: tidbPointConf.MaxIdleConns,
  110. }
  111. TidbPoint.Init()
  112. }
  113. }
  114. MiddleGround = middleground.NewMiddleground(g.Cfg().MustGet(gctx.New(), "etcd.address").Strings()).
  115. RegUserCenter(g.Cfg().MustGet(gctx.New(), "etcd.userCenterKey").String())
  116. Compatible = compatible.NewCompatible(Mgo, Tidb, Mysql, MiddleGround)
  117. }