1.停用自动初始化数据库,须显式调用
2.初始化加入可选文件载入,可自定义加载所需的数据库文件
This commit is contained in:
		
							parent
							
								
									851e2bd23c
								
							
						
					
					
						commit
						59018c5269
					
				| @ -5,4 +5,9 @@ | ||||
| 
 | ||||
| ```go | ||||
| import "golib.gaore.com/GaoreGo/beegoinit" | ||||
| ``` | ||||
| 
 | ||||
| 必须显式调用初始化 | ||||
| ```go | ||||
| db.ReloadByDefault() | ||||
| ``` | ||||
							
								
								
									
										43
									
								
								db/db.go
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								db/db.go
									
									
									
									
									
								
							| @ -41,10 +41,14 @@ func (d *DbItem) Dsn() string { | ||||
| } | ||||
| 
 | ||||
| func init() { | ||||
| 	Reload() | ||||
| 	// Reload() 不再自动链接数据库了, 需要自己手动
 | ||||
| } | ||||
| 
 | ||||
| func Reload(dir ...string) { | ||||
| func ReloadByDefault() { | ||||
| 	Reload(nil) | ||||
| } | ||||
| 
 | ||||
| func Reload(files []string, dir ...string) { | ||||
| 	var err error | ||||
| 	var configer *grconfig.Configer | ||||
| 	logger := grlogs.GetAli("sql") | ||||
| @ -61,26 +65,39 @@ func Reload(dir ...string) { | ||||
| 		dir = append(dir, "conf/") | ||||
| 		configer = grconfig.New(path.Join(dir...)) | ||||
| 	} | ||||
| 	dsns, err := GetDsn(configer) | ||||
| 	dsns, err := GetDsn(configer, files...) | ||||
| 	if err = LoadXorm(dsns); err != nil { | ||||
| 		logger.Critical(err.Error()) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func GetDsn(configer *grconfig.Configer) (DsnList map[string]dsnConfig, err error) { | ||||
| func GetDsn(configer *grconfig.Configer, dbfiles ...string) (DsnList map[string]dsnConfig, err error) { | ||||
| 	var items map[string]*DbItem | ||||
| 	DsnList = make(map[string]dsnConfig) | ||||
| 	err = configer.Item("db", &items) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 
 | ||||
| 	if nil == dbfiles || len(dbfiles) == 0 { | ||||
| 		dbfiles = []string{"db"} | ||||
| 	} | ||||
| 	for alias, v := range items { | ||||
| 		dsn := v.Dsn() | ||||
| 		driver := v.Driver | ||||
| 		if driver == "" { | ||||
| 			driver = "mysql" | ||||
| 
 | ||||
| 	for _, dbfile := range dbfiles { | ||||
| 
 | ||||
| 		if dbfile == "" { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		err = configer.Item(dbfile, &items) | ||||
| 		if err != nil { | ||||
| 			return | ||||
| 		} | ||||
| 		for alias, v := range items { | ||||
| 			dsn := v.Dsn() | ||||
| 			driver := v.Driver | ||||
| 			if driver == "" { | ||||
| 				driver = "mysql" | ||||
| 			} | ||||
| 			DsnList[alias] = dsnConfig{Dsn: dsn, Driver: driver, Item: v} | ||||
| 		} | ||||
| 		DsnList[alias] = dsnConfig{Dsn: dsn, Driver: driver, Item: v} | ||||
| 	} | ||||
| 
 | ||||
| 	return | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user