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