db.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package db
  2. import (
  3. "database/sql"
  4. "log"
  5. "app.yhyue.com/moapp/jybase/mongodb"
  6. "app.yhyue.com/moapp/jybase/mysql"
  7. "app.yhyue.com/moapp/jybase/redis"
  8. "app.yhyue.com/moapp/jypkg/ent/util"
  9. "github.com/gogf/gf/v2/frame/g"
  10. "github.com/gogf/gf/v2/os/gcfg"
  11. "github.com/gogf/gf/v2/os/gctx"
  12. )
  13. type Mysql struct {
  14. Address string //数据库地址:端口
  15. UserName string //用户名
  16. PassWord string //密码
  17. DBName string //数据库名
  18. DB *sql.DB //数据库连接池对象
  19. MaxOpenConns int //用于设置最大打开的连接数,默认值为0表示不限制。
  20. MaxIdleConns int //用于设置闲置的连接数。
  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. var GateWatMySql *mysql.Mysql
  33. var JyMysql *mysql.Mysql
  34. var MgoLog mongodb.MongodbSim
  35. var MgoJy mongodb.MongodbSim
  36. // InitDatabases 初始化数据库
  37. func InitDatabases() {
  38. initDbCtx := gctx.New()
  39. // 初始化redis数据库
  40. redisAddr := g.Cfg().MustGet(initDbCtx, "databases.redis", "session=127.0.0.1:6379,other=127.0.0.1:6379").String()
  41. redis.InitRedis(redisAddr)
  42. log.Printf("初始化redis完成 %s\n", redisAddr)
  43. // 初始化mysql数据库
  44. var mysqlConf Mysql
  45. err := gcfg.Instance().MustGet(initDbCtx, "databases.mysql").Scan(&mysqlConf)
  46. if err != nil {
  47. log.Printf("mysql配置异常 %v\n", err)
  48. log.Fatal(err)
  49. }
  50. GateWatMySql = &mysql.Mysql{
  51. Address: mysqlConf.Address,
  52. UserName: mysqlConf.UserName,
  53. PassWord: mysqlConf.PassWord,
  54. DBName: mysqlConf.DBName,
  55. MaxOpenConns: mysqlConf.MaxOpenConns,
  56. MaxIdleConns: mysqlConf.MaxIdleConns,
  57. }
  58. GateWatMySql.Init()
  59. log.Printf("初始化Mysql完成 %+v\n", mysqlConf)
  60. //初始化jymysql数据库
  61. var jyMysqlConf Mysql
  62. err2 := gcfg.Instance().MustGet(initDbCtx, "databases.mysqlJy").Scan(&jyMysqlConf)
  63. if err2 != nil {
  64. log.Printf("jy mysql配置异常 %v\n", err)
  65. log.Fatal(err)
  66. }
  67. JyMysql = &mysql.Mysql{
  68. Address: jyMysqlConf.Address,
  69. UserName: jyMysqlConf.UserName,
  70. PassWord: jyMysqlConf.PassWord,
  71. DBName: jyMysqlConf.DBName,
  72. MaxOpenConns: jyMysqlConf.MaxOpenConns,
  73. MaxIdleConns: jyMysqlConf.MaxIdleConns,
  74. }
  75. JyMysql.Init()
  76. util.Mysql = JyMysql
  77. log.Printf("初始化jy Mysql完成 %+v\n", mysqlConf)
  78. // 初始化mongodb
  79. var mgoConf MgoConf
  80. if err := gcfg.Instance().MustGet(initDbCtx, "databases.mogLog").Scan(&mgoConf); err == nil {
  81. MgoLog = mongodb.MongodbSim{
  82. MongodbAddr: mgoConf.Address,
  83. Size: mgoConf.Size,
  84. DbName: mgoConf.DbName,
  85. ReplSet: mgoConf.ReplSet,
  86. UserName: mgoConf.UserName,
  87. Password: mgoConf.Password,
  88. }
  89. MgoLog.InitPool()
  90. log.Printf("初始化 mongodb log 完成 %+v\n", mgoConf)
  91. }
  92. //初始化 jy mongodb
  93. var jyMgoConf MgoConf
  94. if err := gcfg.Instance().MustGet(initDbCtx, "databases.mogJy").Scan(&jyMgoConf); err == nil {
  95. MgoJy = mongodb.MongodbSim{
  96. MongodbAddr: jyMgoConf.Address,
  97. Size: jyMgoConf.Size,
  98. DbName: jyMgoConf.DbName,
  99. ReplSet: jyMgoConf.ReplSet,
  100. }
  101. MgoJy.InitPool()
  102. log.Printf("初始化 mongodb log 完成 %+v\n", jyMgoConf)
  103. }
  104. }