|
|
@@ -3,28 +3,24 @@ package engine
|
|
|
import (
|
|
|
"fmt"
|
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/logs"
|
|
|
"github.com/xormplus/xorm"
|
|
|
"regexp"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-func CreateDatabase(engine *ApiEngine) {
|
|
|
- createDatabase(engine.PlatformOrmEngine)
|
|
|
- for _,db :=range engine.BusinessOrmEngine {
|
|
|
- createDatabase(db)
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
-func createDatabase(db *xorm.Engine) {
|
|
|
- if db.DriverName() == "mysql" {
|
|
|
- dbname := db.DataSourceName()
|
|
|
+func createDatabase(orm *xorm.Engine) {
|
|
|
+ if orm.DriverName() == "mysql" {
|
|
|
+ dbname := orm.DataSourceName()
|
|
|
reg := regexp.MustCompile("(.*)/(.*)(\\?.*)")
|
|
|
//strings := reg.FindAllStringSubmatch(s, -1)
|
|
|
strings := reg.FindStringSubmatch(dbname)
|
|
|
fmt.Println(strings)
|
|
|
if len(strings) > 3 {
|
|
|
dbname = strings[2]
|
|
|
- db, _ := xorm.NewEngine(db.DriverName(), strings[1]+"/")
|
|
|
+ db, _ := xorm.NewEngine(orm.DriverName(), strings[1]+"/")
|
|
|
db.ShowSQL(true)
|
|
|
_, err := db.Sql("CREATE DATABASE IF NOT EXISTS `" + dbname + "` default charset utf8 COLLATE utf8_general_ci").Execute()
|
|
|
if err != nil {
|
|
|
@@ -36,7 +32,7 @@ func createDatabase(db *xorm.Engine) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func InitPlatformDbData(engine *ApiEngine) {
|
|
|
+func initPlatformDbData(db *xorm.Engine) {
|
|
|
|
|
|
orgs := []models.SysOrg{
|
|
|
{
|
|
|
@@ -134,16 +130,55 @@ func InitPlatformDbData(engine *ApiEngine) {
|
|
|
},
|
|
|
}
|
|
|
|
|
|
- models.SyncDb(engine.PlatformOrmEngine)
|
|
|
+ models.SyncDb(db)
|
|
|
|
|
|
- _, err := engine.PlatformOrmEngine.Insert(orgs)
|
|
|
+ _, err := db.Insert(orgs)
|
|
|
printError(err)
|
|
|
- _, err = engine.PlatformOrmEngine.Insert(users)
|
|
|
+ _, err = db.Insert(users)
|
|
|
printError(err)
|
|
|
- _, err = engine.PlatformOrmEngine.Insert(roles)
|
|
|
+ _, err = db.Insert(roles)
|
|
|
printError(err)
|
|
|
- _, err = engine.PlatformOrmEngine.Insert(userRoles)
|
|
|
+ _, err = db.Insert(userRoles)
|
|
|
printError(err)
|
|
|
- _, err = engine.PlatformOrmEngine.Insert(menus)
|
|
|
+ _, err = db.Insert(menus)
|
|
|
printError(err)
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+func initOrmEngine(orm *xorm.Engine, driverName string) {
|
|
|
+ path, _ := utils.GetCurrentPath()
|
|
|
+ sqldir := path + "/sqlconfig"
|
|
|
+ //注册SqlMap配置,xml格式
|
|
|
+ err := orm.RegisterSqlMap(xorm.Xml(sqldir, ".xml"))
|
|
|
+ printError(err)
|
|
|
+ //注册SqlTemplate配置,使用Pongo2模板引擎
|
|
|
+ err = orm.RegisterSqlTemplate(xorm.Pongo2(sqldir, "_"+driverName+".stpl"))
|
|
|
+ printError(err)
|
|
|
+ //注册SqlTemplate配置,使用Jet模板引擎
|
|
|
+ err = orm.RegisterSqlTemplate(xorm.Jet(sqldir, "_"+driverName+".jet"))
|
|
|
+ printError(err)
|
|
|
+ //注册SqlTemplate配置,使用html/template模板引擎
|
|
|
+ err = orm.RegisterSqlTemplate(xorm.Default(sqldir, "_"+driverName+".tpl"))
|
|
|
+ printError(err)
|
|
|
+
|
|
|
+ //设置时区
|
|
|
+ orm.DatabaseTZ = time.Local // 必须
|
|
|
+ orm.TZLocation = time.Local // 必须
|
|
|
+ time.LoadLocation("Asia/Shanghai")
|
|
|
+
|
|
|
+ orm.StartFSWatcher()
|
|
|
+
|
|
|
+ orm.ShowSQL(true)
|
|
|
+ /*for k,_:=range orm.SqlMap.Sql{
|
|
|
+ fmt.Println(k)
|
|
|
+ }*/
|
|
|
+ //orm.ShowExecTime(true)
|
|
|
+ createDatabase(orm)
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func printError(err error) {
|
|
|
+ if err != nil {
|
|
|
+ logs.Error(err.Error())
|
|
|
+ }
|
|
|
+}
|