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