dtm/dtmsvr/objects.go
2021-05-19 11:29:38 +08:00

42 lines
890 B
Go

package dtmsvr
import (
"fmt"
"strings"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
"github.com/yedf/dtm/common"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type M = map[string]interface{}
var rabbit *Rabbitmq = nil
func RabbitmqGet() *Rabbitmq {
LoadConfig()
if rabbit == nil {
rabbit = RabbitmqNew(&ServerConfig.Rabbitmq)
}
return rabbit
}
var db *gorm.DB = nil
func DbGet() *gorm.DB {
LoadConfig()
if db == nil {
conf := viper.GetStringMapString("mysql")
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", conf["user"], conf["password"], conf["host"], conf["port"], conf["database"])
logrus.Printf("connecting %s", strings.Replace(dsn, conf["password"], "****", 1))
db1, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
SkipDefaultTransaction: true,
})
common.PanicIfError(err)
db = db1.Debug()
}
return db
}