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
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 (
|
|
DbMain *xorm.Engine
|
|
DbMongo *mgo.Session
|
|
)
|
|
|
|
func InitDb() error {
|
|
err := initDbMain()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
err = initDbMongo()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
func initDbMain() error {
|
|
cnf := gocloud.CloudConf.Datasorce["main"]
|
|
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())
|
|
}
|
|
|
|
DbMain = 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
|
|
}
|