mysql.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package db
  2. import (
  3. "gorm.io/gorm"
  4. "log"
  5. "sfbase/core"
  6. "sfbase/global"
  7. "sfbase/mysql"
  8. )
  9. type MysqlDBConfig struct {
  10. DriverName string `mapstructure:"driver_name"`
  11. DataSourceName string `mapstructure:"data_source_name"`
  12. MaxOpenConn int `mapstructure:"max_open_conn"`
  13. MaxIdleConn int `mapstructure:"max_idle_conn"`
  14. MaxConnLifeTime int `mapstructure:"max_conn_life_time"`
  15. }
  16. var (
  17. sfisDB *gorm.DB //业务主库mysql
  18. )
  19. func InitDB() {
  20. //数据库属性定义在业务中,解析配置文件加载到结构体基本方法viper在spirit中
  21. sfisDBConfig := MysqlDBConfig{}
  22. _, err := core.Viper(global.EnvPathPrefix+"/"+global.Env+"/mysql.toml", &sfisDBConfig)
  23. if err != nil {
  24. log.Println("sfisDBConfig:", err)
  25. return
  26. }
  27. //使用GromMysql封装在spirit中
  28. sfisDB = mysql.GormMysql(sfisDBConfig.DataSourceName, sfisDBConfig.DriverName, sfisDBConfig.MaxOpenConn, sfisDBConfig.MaxIdleConn, nil)
  29. if sfisDB != nil {
  30. log.Println("sfisDB 初始化成功")
  31. }
  32. //todo other db init
  33. }
  34. func GetSFISDB() *gorm.DB {
  35. if sfisDB == nil {
  36. log.Printf("ERROR:SFDB 实例为空!请重新实例化.")
  37. }
  38. return sfisDB
  39. }