package db import ( "log" "sfbase/core" "sfbase/global" "sfbase/mysql" "gorm.io/gorm" ) type MysqlDBConfig struct { DriverName string `mapstructure:"driver_name"` DataSourceName string `mapstructure:"data_source_name"` MaxOpenConn int `mapstructure:"max_open_conn"` MaxIdleConn int `mapstructure:"max_idle_conn"` MaxConnLifeTime int `mapstructure:"max_conn_life_time"` } var ( sfisDB *gorm.DB //业务主库mysql ) func InitDB() { //数据库属性定义在业务中,解析配置文件加载到结构体基本方法viper在spirit中 sfisDBConfig := MysqlDBConfig{} _, err := core.Viper(global.EnvPathPrefix+"/"+global.Env+"/mysql.toml", &sfisDBConfig) if err != nil { log.Println("sfisDBConfig:", err) return } //使用GromMysql封装在spirit中 sfisDB = mysql.GormMysql(sfisDBConfig.DataSourceName, sfisDBConfig.DriverName, sfisDBConfig.MaxOpenConn, sfisDBConfig.MaxIdleConn, nil) if sfisDB != nil { log.Println("sfisDB 初始化成功") } //todo other db init } func GetSFISDB() *gorm.DB { if sfisDB == nil { log.Printf("ERROR:SFDB 实例为空!请重新实例化.") } return sfisDB }