1.停用自动初始化数据库,须显式调用
2.初始化加入可选文件载入,可自定义加载所需的数据库文件
This commit is contained in:
parent
851e2bd23c
commit
59018c5269
@ -6,3 +6,8 @@
|
||||
```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