代码拉取完成,页面将自动刷新
package database
import (
"gitee.com/taotechip/modules/logger"
"github.com/jinzhu/configor"
"gorm.io/gorm"
)
var connMaps = make(map[string]*gorm.DB)
var dialectors = map[string]func(map[string]string) (gorm.Dialector, error){
"mysql": MysqlDialector,
"oracle": OracleDialector,
}
var configs = make([]struct {
Name string
Type string
Default bool
Config map[string]string
}, 0)
func init() {
configor.Load(&configs, "conf/database.yml")
logger.Info("读取%d个数据源", len(configs))
var defaultConn *gorm.DB
for i, cfg := range configs {
dialector, ok := dialectors[cfg.Type]
if !ok {
logger.Warn("不支持的数据库类型[%s]", cfg.Type)
continue
}
dialect, err := dialector(cfg.Config)
if err != nil {
logger.Error("[%s]%s", cfg.Name, err.Error())
continue
}
dbConn, err := gorm.Open(dialect, &gorm.Config{})
if err != nil {
logger.Error("[%s]数据库连接错误 %s", cfg.Name, err.Error())
continue
}
connMaps[cfg.Name] = dbConn
if cfg.Default {
defaultConn = dbConn
}
if i == 0 {
defaultConn = dbConn
}
}
connMaps["default"] = defaultConn
}
func GetConn() (conn *gorm.DB) {
return GetConnWithName("default")
}
func GetConnWithName(name string) (conn *gorm.DB) {
return connMaps[name].Session(&gorm.Session{})
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。