You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

62 lines
1.0 KiB

package comm
import (
_ "github.com/go-sql-driver/mysql"
gocloud "github.com/mgr9525/go-cloud"
"github.com/xormplus/xorm"
"gopkg.in/mgo.v2"
)
var (
DbSys *xorm.Engine
DbMongo *mgo.Session
)
func InitDb() error {
err := initDb("sys", &DbSys)
if err != nil {
return err
}
err = initDbMongo()
if err != nil {
return err
}
return nil
}
func initDb(key string, pdb **xorm.Engine) error {
cnf := gocloud.CloudConf.Datasorce[key]
if !cnf.Enable {
return nil
}
if len(cnf.Driver) <= 0 || len(cnf.Url) <= 0 {
return nil
}
db, err := xorm.NewEngine(cnf.Driver, cnf.Url)
if err != nil {
return err
}
/*err = db.RegisterSqlTemplate(xorm.Pongo2("./../sqltpls", ".stpl"))
if err != nil {
println("db RegisterSqlTemplate error : " + err.Error())
}*/
*pdb = db
return nil
}
func initDbMongo() error {
cnf := gocloud.CloudConf.Datasorce["mongo"]
if !cnf.Enable {
return nil
}
if len(cnf.Driver) <= 0 || len(cnf.Url) <= 0 {
return nil
}
db, err := mgo.Dial(cnf.Url)
if err != nil {
return err
}
DbMongo = db
return nil
}