فهرست منبع

sqlmap和sqltemplate的根目录除可在配置文件配置,也可以在程序初始化之前代码指定,代码指定优先级高于配置

xormplus 10 سال پیش
والد
کامیت
9f264f3857
3فایلهای تغییر یافته به همراه28 افزوده شده و 23 حذف شده
  1. 13 11
      sqlmap.go
  2. 13 11
      sqltemplate.go
  3. 2 1
      test/xorm_test.go

+ 13 - 11
sqlmap.go

@@ -11,7 +11,8 @@ import (
 )
 
 type SqlMap struct {
-	Sql map[string]string
+	SqlMapRootDir string
+	Sql           map[string]string
 }
 
 type Result struct {
@@ -25,18 +26,19 @@ type Sql struct {
 
 func (engine *Engine) InitSqlMap() error {
 	var err error
-	cfg, err := goconfig.LoadConfigFile("./sql/xormcfg.ini")
-	if err != nil {
-		return err
-	}
-	var sqlMapRootDir string
-	sqlMapRootDir, err = cfg.GetValue("", "SqlMapRootDir")
-	if err != nil {
-		return err
+	if engine.SqlMap.SqlMapRootDir == "" {
+		cfg, err := goconfig.LoadConfigFile("./sql/xormcfg.ini")
+		if err != nil {
+			return err
+		}
+		engine.SqlMap.SqlMapRootDir, err = cfg.GetValue("", "SqlMapRootDir")
+		if err != nil {
+			return err
+		}
 	}
-	
+
 	engine.SqlMap.Sql = make(map[string]string)
-	err = filepath.Walk(sqlMapRootDir, engine.SqlMap.walkFunc)
+	err = filepath.Walk(engine.SqlMap.SqlMapRootDir, engine.SqlMap.walkFunc)
 	if err != nil {
 		return err
 	}

+ 13 - 11
sqltemplate.go

@@ -10,23 +10,25 @@ import (
 )
 
 type SqlTemplate struct {
-	Template map[string]*pongo2.Template
+	SqlTemplateRootDir string
+	Template           map[string]*pongo2.Template
 }
 
 func (engine *Engine) InitSqlTemplate() error {
 	var err error
-	cfg, err := goconfig.LoadConfigFile("./sql/xormcfg.ini")
-	if err != nil {
-		return err
-	}
-	var sqlMapRootDir string
-	sqlMapRootDir, err = cfg.GetValue("", "SqlTemplateRootDir")
-	if err != nil {
-		return err
+	if engine.SqlTemplate.SqlTemplateRootDir == "" {
+		cfg, err := goconfig.LoadConfigFile("./sql/xormcfg.ini")
+		if err != nil {
+			return err
+		}
+		engine.SqlTemplate.SqlTemplateRootDir, err = cfg.GetValue("", "SqlTemplateRootDir")
+		if err != nil {
+			return err
+		}
 	}
-	
+
 	engine.SqlTemplate.Template = make(map[string]*pongo2.Template)
-	err = filepath.Walk(sqlMapRootDir, engine.SqlTemplate.walkFunc)
+	err = filepath.Walk(engine.SqlTemplate.SqlTemplateRootDir, engine.SqlTemplate.walkFunc)
 	if err != nil {
 		return err
 	}

+ 2 - 1
test/xorm_test.go

@@ -39,7 +39,8 @@ var db *xorm.Engine
 func Test_InitDB(t *testing.T) {
 	var err error
 	db, err = xorm.NewPostgreSQL("postgres://postgres:root@localhost:5432/mblog?sslmode=disable")
-
+	db.SqlMap.SqlMapRootDir="./sql/oracle"
+	db.SqlTemplate.SqlTemplateRootDir="./sql/oracle"
 	if err != nil {
 		t.Fatal(err)
 	}