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 } /*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 }