mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-09-17 08:46:39 +08:00
Merge pull request #182 from 0x76long/2.0-bugfix
修复 goframe 配置读写分离后,获取不到数据库链接
This commit is contained in:
commit
1017a92c29
@ -16,6 +16,7 @@ import (
|
|||||||
"github.com/casbin/casbin/v2"
|
"github.com/casbin/casbin/v2"
|
||||||
"github.com/casbin/casbin/v2/model"
|
"github.com/casbin/casbin/v2/model"
|
||||||
_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
|
_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
|
||||||
|
"github.com/gogf/gf/v2/container/gvar"
|
||||||
"github.com/gogf/gf/v2/frame/g"
|
"github.com/gogf/gf/v2/frame/g"
|
||||||
"github.com/gogf/gf/v2/os/gfile"
|
"github.com/gogf/gf/v2/os/gfile"
|
||||||
"github.com/gogf/gf/v2/os/gres"
|
"github.com/gogf/gf/v2/os/gres"
|
||||||
@ -35,7 +36,7 @@ var Enforcer *casbin.Enforcer
|
|||||||
// InitEnforcer 初始化
|
// InitEnforcer 初始化
|
||||||
func InitEnforcer(ctx context.Context) {
|
func InitEnforcer(ctx context.Context) {
|
||||||
var (
|
var (
|
||||||
link = g.Cfg().MustGet(ctx, "database.default.link")
|
link = getDbLink(ctx)
|
||||||
a, err = NewAdapter(link.String())
|
a, err = NewAdapter(link.String())
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -70,6 +71,26 @@ func InitEnforcer(ctx context.Context) {
|
|||||||
loadPermissions(ctx)
|
loadPermissions(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetDbLink 获取数据库链接
|
||||||
|
func getDbLink(ctx context.Context) *gvar.Var {
|
||||||
|
|
||||||
|
link := g.Cfg().MustGet(ctx, "database.default")
|
||||||
|
//读写分离
|
||||||
|
if !link.IsSlice() {
|
||||||
|
return g.Cfg().MustGet(ctx, "database.default.link")
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, v := range link.Array() {
|
||||||
|
// 只获取主库
|
||||||
|
val := v.(map[string]interface{})
|
||||||
|
if val["role"] == "master" {
|
||||||
|
return gvar.New(val["link"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return gvar.New("database.default.0.link")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func loadPermissions(ctx context.Context) {
|
func loadPermissions(ctx context.Context) {
|
||||||
type Policy struct {
|
type Policy struct {
|
||||||
Key string `json:"key"`
|
Key string `json:"key"`
|
||||||
|
Loading…
Reference in New Issue
Block a user