支持多个db
This commit is contained in:
parent
32e3d99d37
commit
4fb99540c5
43
lxDb/db.go
43
lxDb/db.go
@ -14,8 +14,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// DB2.0 数据库连接 gorm2.0
|
// DB2.0 数据库连接 gorm2.0
|
||||||
var DB *gorm.DB //gs 数据库
|
var DBS map[string]*gorm.DB //gs 数据库
|
||||||
type DbConfig struct {
|
type DbConfig struct {
|
||||||
|
Name string
|
||||||
Host string
|
Host string
|
||||||
Port string
|
Port string
|
||||||
User string
|
User string
|
||||||
@ -24,27 +25,35 @@ type DbConfig struct {
|
|||||||
Charset string
|
Charset string
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDB(c *gin.Context) *gorm.DB {
|
func GetDB(c *gin.Context, dbName ...string) *gorm.DB {
|
||||||
v, _ := c.Get("X-Span-ID")
|
v, _ := c.Get("X-Span-ID")
|
||||||
spanId := fmt.Sprintf("%v", v)
|
spanId := fmt.Sprintf("%v", v)
|
||||||
ctx := context.WithValue(context.Background(), "X-Span-ID", spanId)
|
ctx := context.WithValue(context.Background(), "X-Span-ID", spanId)
|
||||||
return DB.WithContext(ctx)
|
d := "one"
|
||||||
|
if len(dbName) != 0 {
|
||||||
|
d = dbName[0]
|
||||||
|
}
|
||||||
|
return DBS[d].WithContext(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
func InitDBS(env string, conf []DbConfig) {
|
||||||
|
DBS = map[string]*gorm.DB{}
|
||||||
|
if len(conf) == 1 {
|
||||||
|
conf[0].Name = "one"
|
||||||
|
}
|
||||||
|
for _, config := range conf {
|
||||||
|
InitDB(env, config)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitDB(env string, conf DbConfig) {
|
func InitDB(env string, conf DbConfig) {
|
||||||
//dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
|
if conf.Name == "" {
|
||||||
//newLogger := logger.New(
|
DBS = nil
|
||||||
// //zap.NewStdLog(),
|
fmt.Println("db name 错误")
|
||||||
// log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
|
return
|
||||||
// logger.Config{
|
}
|
||||||
// SlowThreshold: 200 * time.Millisecond, // Slow SQL threshold
|
|
||||||
// LogLevel: logger.Info, // Log level
|
|
||||||
// IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
|
|
||||||
// Colorful: false, // Disable color
|
|
||||||
// },
|
|
||||||
//)
|
|
||||||
if conf.Host == "" {
|
if conf.Host == "" {
|
||||||
DB = nil
|
DBS = nil
|
||||||
fmt.Println("未配置Db连接")
|
fmt.Println("未配置Db连接")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -64,7 +73,7 @@ func InitDB(env string, conf DbConfig) {
|
|||||||
fmt.Println(err.Error())
|
fmt.Println(err.Error())
|
||||||
os.Exit(-1)
|
os.Exit(-1)
|
||||||
}
|
}
|
||||||
DB = db
|
DBS[conf.Name] = db
|
||||||
} else {
|
} else {
|
||||||
logger2 := lxzap.NewGormZap(zap.L())
|
logger2 := lxzap.NewGormZap(zap.L())
|
||||||
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
|
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
|
||||||
@ -78,7 +87,7 @@ func InitDB(env string, conf DbConfig) {
|
|||||||
fmt.Println(err.Error())
|
fmt.Println(err.Error())
|
||||||
os.Exit(-1)
|
os.Exit(-1)
|
||||||
}
|
}
|
||||||
DB = db
|
DBS[conf.Name] = db
|
||||||
}
|
}
|
||||||
//db.AutoMigrate(TaskData{}, Task{}, Version{})
|
//db.AutoMigrate(TaskData{}, Task{}, Version{})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Run(env string, port string, fun func(), r func(router *gin.Engine), zapConfig lxzap.ZapLogConfig, dbConf lxDb.DbConfig, redisConf lxDb.RedisConfig) {
|
func Run(env string, port string, fun func(), r func(router *gin.Engine), zapConfig lxzap.ZapLogConfig, dbConf []lxDb.DbConfig, redisConf lxDb.RedisConfig) {
|
||||||
_ = lxlog.InitLog()
|
_ = lxlog.InitLog()
|
||||||
err := lxzap.InitZapLogger(zapConfig)
|
err := lxzap.InitZapLogger(zapConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -29,7 +29,7 @@ func Run(env string, port string, fun func(), r func(router *gin.Engine), zapCon
|
|||||||
} else {
|
} else {
|
||||||
app.Use(lxzap.GinLogger(), lxzap.GinRecovery(true))
|
app.Use(lxzap.GinLogger(), lxzap.GinRecovery(true))
|
||||||
}
|
}
|
||||||
lxDb.InitDB(env, dbConf)
|
lxDb.InitDBS(env, dbConf)
|
||||||
lxDb.InitRedis(redisConf)
|
lxDb.InitRedis(redisConf)
|
||||||
lxLock.InitRedis(redisConf)
|
lxLock.InitRedis(redisConf)
|
||||||
fun()
|
fun()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user