diff --git a/db/db.go b/db/db.go index 5b084f3..99d4858 100644 --- a/db/db.go +++ b/db/db.go @@ -6,6 +6,7 @@ import ( _ "github.com/lib/pq" "golib.gaore.com/GaoreGo/grconfig" "golib.gaore.com/GaoreGo/grlogs" + "path" ) const DEFAULT = "default" @@ -33,9 +34,12 @@ func (d *DbItem) Dsn() string { } func init() { + Reload() +} +func Reload(dir ...string) { var err error - + var configer *grconfig.Configer logger := grlogs.GetAli("sql") defer func() { @@ -44,16 +48,21 @@ func init() { } }() - dsns, err := GetDsn() + if len(dir) == 0 { + configer = grconfig.New("conf/") + } else { + dir = append(dir, "conf/") + configer = grconfig.New(path.Join(dir...)) + } + dsns, err := GetDsn(configer) if err = LoadXorm(dsns); err != nil { logger.Critical(err.Error()) } } -func GetDsn() (DsnList map[string]dsnConfig, err error) { +func GetDsn(configer *grconfig.Configer) (DsnList map[string]dsnConfig, err error) { var items map[string]*DbItem DsnList = make(map[string]dsnConfig) - configer := grconfig.New("conf/") err = configer.Item("db", &items) if err != nil { return