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.
 
 
 

66 lines
1.2 KiB

package comms
import (
"context"
_ "github.com/go-sql-driver/mysql"
gocloud "github.com/mgr9525/go-cloud"
"github.com/qiniu/qmgo"
"xorm.io/xorm"
)
var (
DbSysHelper *gocloud.DBHelper
DbMongo *qmgo.Client
)
func InitDb() error {
err := InitXorm("sys", &DbSysHelper)
if err != nil {
return err
}
err = InitDbMongo("mongo", &DbMongo)
if err != nil {
return err
}
return nil
}
func InitXorm(key string, pdb **gocloud.DBHelper) 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
}
db.ShowSQL(true)
/*err = db.RegisterSqlTemplate(xorm.Pongo2("./../sqltpls", ".stpl"))
if err != nil {
println("db RegisterSqlTemplate error : " + err.Error())
}*/
//*pdb = db
*pdb = gocloud.NewDBHelper(db)
return nil
}
func InitDbMongo(key string, pdb **qmgo.Client) error {
cnf := gocloud.CloudConf.Datasorce[key]
if !cnf.Enable {
return nil
}
if len(cnf.Driver) <= 0 || len(cnf.Url) <= 0 {
return nil
}
db, err := qmgo.NewClient(context.Background(), &qmgo.Config{Uri: cnf.Url})
if err != nil {
return err
}
*pdb = db
return nil
}