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.
65 lines
1.2 KiB
65 lines
1.2 KiB
package comm
|
|
|
|
import (
|
|
"context"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
gocloud "github.com/mgr9525/go-cloud"
|
|
"github.com/qiniu/qmgo"
|
|
"xorm.io/xorm"
|
|
)
|
|
|
|
var (
|
|
//DbSys *xorm.Engieq
|
|
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
|
|
}
|
|
|
|
/*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
|
|
}
|