From 59018c526959d24b3d47acc888e9ed6c3588fd23 Mon Sep 17 00:00:00 2001 From: liangzy Date: Fri, 17 Feb 2023 11:24:58 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=81=9C=E7=94=A8=E8=87=AA=E5=8A=A8=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E6=95=B0=E6=8D=AE=E5=BA=93=EF=BC=8C=E9=A1=BB?= =?UTF-8?q?=E6=98=BE=E5=BC=8F=E8=B0=83=E7=94=A8=202.=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E5=8A=A0=E5=85=A5=E5=8F=AF=E9=80=89=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=BD=BD=E5=85=A5=EF=BC=8C=E5=8F=AF=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=89=80=E9=9C=80=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++++ db/db.go | 43 ++++++++++++++++++++++++++++++------------- go.mod | 2 +- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 647dd30..28754a5 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,9 @@ ```go import "golib.gaore.com/GaoreGo/beegoinit" +``` + +必须显式调用初始化 +```go +db.ReloadByDefault() ``` \ No newline at end of file diff --git a/db/db.go b/db/db.go index a916bd7..b4653ef 100644 --- a/db/db.go +++ b/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 } diff --git a/go.mod b/go.mod index 9d805b8..a58e8c5 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module golib.gaore.com/GaoreGo/beegoinit -go 1.13 +go 1.15 require ( github.com/OwnLocal/goes v1.0.0 // indirect