xormplus / xorm

xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常简便。本库是基于原版xorm的定制增强版本,为xorm提供类似ibatis的配置文件及动态SQL支持,支持AcitveRecord操作
BSD 3-Clause "New" or "Revised" License
1.55k stars 222 forks source link

主从配置NewSession问题 #39

Closed kiddlovemoon closed 5 years ago

kiddlovemoon commented 5 years ago

Engine 的 NewSession() 方法应增加对engineGroup的判断,如果为engineGroup 则sessionType为groupSession,否则主从配置无效。

xormplus commented 5 years ago

请详细描述一下,你这里指的主从配置无效是具体指什么?

kiddlovemoon commented 5 years ago

当时用SqlTemplateClient时,配置主从库是不生效的,所有查询也是走的主库。

kiddlovemoon commented 5 years ago

修改如下: // NewSession New a session func (engine Engine) NewSession() Session { session := &Session{engine: engine} session.Init() if engine.engineGroup != nil { session.sessionType = groupSession } return session }

xormplus commented 5 years ago

你用Engine对象创建的session和EngineGroup对象创建的session本身就不一样啊。你要使用主从方式,就需要使用EngineGroup来创建session