This is Revel Module to enable XORM in the Revel framework.
To activate it, add the module to your app.conf:
module.xorm = github.com/nashtsai/xormrevelmodule
This module takes Revel db module options:
db.import = github.com/go-sql-driver/mysql # golang db driver
db.driver = mysql # driver name
db.spec = root:@/mydb?charset=utf8 # datasource name
In addition you can set the maximum number of connections in the idle connection pool and maximum number of open connections to the database:
db.maxidleconns = 10
db.maxopenconns = 50
XORM specific options:
xorm.showsql = true # show SQL
xorm.showdebug = true # show XORM debug info
Add anonymous xormmodule.XormController or anonymous xormmodule.XormSessionController member to your revel controller struct:
import ( ... "github.com/nashtsai/xormrevelmodule" "github.com/revel/revel" ... ) type MyXormController struct { *revel.Controller xormmodule.XormController } func (c MyXormController) List() revel.Result { users := make([]*Userinfo, 0) c.Engine.Find(&users) return c.Render(users) } type MyXormSessionController struct { *revel.Controller xormmodule.XormSessionController } func (c MyXormSessionController) Delete(id int64) revel.Result { _, err: = c.XormSession.Delete(&UserInfo{id:id}) return c.Render(err) }
Post init. handler after xorm.Engine is initialized:
import ( "github.com/go-xorm/xorm" "github.com/nashtsai/xormrevelmodule" ) func init() { xormmodule.AddPostInitProcessor(func(engine *xorm.Engine){ // your own init code, i.e., engine.Sync }) }