From f399658f71360f5ff38ff53a473e4b07cef0316a Mon Sep 17 00:00:00 2001 From: HenryLee Date: Tue, 17 May 2016 00:17:29 +0800 Subject: [PATCH] update --- config.go | 22 +++++++++++++++------- config/ini.go | 3 +++ virtrouter.go | 11 ++++++----- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/config.go b/config.go index 5cc43bc..a189690 100644 --- a/config.go +++ b/config.go @@ -234,14 +234,22 @@ func LoadDBConfig() (err error) { iniconf, err := config.NewConfig("ini", fname) if err == nil { os.Remove(fname) - defDB := AppConfig.DBList["lessgo"] - for _, section := range iniconf.(*config.IniConfigContainer).Sections() { - dbconfig := defDB - readSingleConfig(section, &dbconfig, iniconf) - if strings.ToLower(section) == DEFAULTDB_SECTION { - AppConfig.DefaultDB = dbconfig.Name + sections := iniconf.(*config.IniConfigContainer).Sections() + if len(sections) > 0 { + AppConfig.DefaultDB = "" + defDB := AppConfig.DBList["lessgo"] + delete(AppConfig.DBList, "lessgo") + for _, section := range sections { + dbconfig := defDB + readSingleConfig(section, &dbconfig, iniconf) + if strings.ToLower(section) == DEFAULTDB_SECTION { + AppConfig.DefaultDB = dbconfig.Name + } + AppConfig.DBList[dbconfig.Name] = dbconfig + } + if AppConfig.DefaultDB == "" { + AppConfig.DefaultDB = iniconf.DefaultString(sections[0]+"::name", defDB.Name) } - AppConfig.DBList[dbconfig.Name] = dbconfig } } diff --git a/config/ini.go b/config/ini.go index 2baed84..7300aee 100644 --- a/config/ini.go +++ b/config/ini.go @@ -202,6 +202,7 @@ func (c *IniConfigContainer) MainKeys() []string { a[i] = k i++ } + sort.Strings(a) return a } @@ -216,6 +217,7 @@ func (c *IniConfigContainer) Sections() []string { a[i] = k i++ } + sort.Strings(a) return a } @@ -227,6 +229,7 @@ func (c *IniConfigContainer) SectionKeys(section string) []string { a[i] = k i++ } + sort.Strings(a) return a } diff --git a/virtrouter.go b/virtrouter.go index 8265b07..aed735a 100644 --- a/virtrouter.go +++ b/virtrouter.go @@ -53,11 +53,12 @@ var ( // 从数据库初始化虚拟路由 func initVirtRouterFromDB() { - lessgodb, _ = GetDB("lessgo") - if lessgodb == nil { - Logger().Warn("Can only use source code routing.") - return - } + defer func() { + if p := recover(); p != nil { + Logger().Warn("Can only use source code routing: %v.", p) + } + }() + lessgodb = DefaultDB() var err error if err = lessgodb.Ping(); err != nil { Logger().Warn("Can only use source code routing: [dbPing] %v.", err)