summaryrefslogtreecommitdiffstats
path: root/models/models.go
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-21 01:48:10 -0400
committerUnknown <joe2010xtmf@163.com>2014-03-21 01:48:10 -0400
commitf6596f11c4aacd3c7c30098f7ffe79e936d21583 (patch)
treeaad5d5017b03d530e6c69ea474266fecea86d0e2 /models/models.go
parent369ddf76a8ae6916ab72f1fa26c81b44c456c6ea (diff)
downloadgitea-f6596f11c4aacd3c7c30098f7ffe79e936d21583.tar.gz
gitea-f6596f11c4aacd3c7c30098f7ffe79e936d21583.zip
All configuration reload-able
Diffstat (limited to 'models/models.go')
-rw-r--r--models/models.go39
1 files changed, 24 insertions, 15 deletions
diff --git a/models/models.go b/models/models.go
index 8df230975f..bb0015d3de 100644
--- a/models/models.go
+++ b/models/models.go
@@ -16,30 +16,39 @@ import (
"github.com/gogits/gogs/modules/base"
)
-var orm *xorm.Engine
+var (
+ orm *xorm.Engine
+
+ dbCfg struct {
+ Type, Host, Name, User, Pwd, Path, SslMode string
+ }
+)
+
+func LoadModelsConfig() {
+ dbCfg.Type = base.Cfg.MustValue("database", "DB_TYPE")
+ dbCfg.Host = base.Cfg.MustValue("database", "HOST")
+ dbCfg.Name = base.Cfg.MustValue("database", "NAME")
+ dbCfg.User = base.Cfg.MustValue("database", "USER")
+ dbCfg.Pwd = base.Cfg.MustValue("database", "PASSWD")
+ dbCfg.Path = base.Cfg.MustValue("database", "PATH", "data/gogs.db")
+ dbCfg.SslMode = base.Cfg.MustValue("database", "SSL_MODE")
+}
func setEngine() {
- dbType := base.Cfg.MustValue("database", "DB_TYPE")
- dbHost := base.Cfg.MustValue("database", "HOST")
- dbName := base.Cfg.MustValue("database", "NAME")
- dbUser := base.Cfg.MustValue("database", "USER")
- dbPwd := base.Cfg.MustValue("database", "PASSWD")
- dbPath := base.Cfg.MustValue("database", "PATH", "data/gogs.db")
- sslMode := base.Cfg.MustValue("database", "SSL_MODE")
var err error
- switch dbType {
+ switch dbCfg.Type {
case "mysql":
orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@%s/%s?charset=utf8",
- dbUser, dbPwd, dbHost, dbName))
+ dbCfg.User, dbCfg.Pwd, dbCfg.Host, dbCfg.Name))
case "postgres":
orm, err = xorm.NewEngine("postgres", fmt.Sprintf("user=%s password=%s dbname=%s sslmode=%s",
- dbUser, dbPwd, dbName, sslMode))
+ dbCfg.User, dbCfg.Pwd, dbCfg.Name, dbCfg.SslMode))
case "sqlite3":
- os.MkdirAll(path.Dir(dbPath), os.ModePerm)
- orm, err = xorm.NewEngine("sqlite3", dbPath)
+ os.MkdirAll(path.Dir(dbCfg.Path), os.ModePerm)
+ orm, err = xorm.NewEngine("sqlite3", dbCfg.Path)
default:
- fmt.Printf("Unknown database type: %s\n", dbType)
+ fmt.Printf("Unknown database type: %s\n", dbCfg.Type)
os.Exit(2)
}
if err != nil {
@@ -61,7 +70,7 @@ func setEngine() {
orm.ShowSQL = true
}
-func init() {
+func NewEngine() {
setEngine()
if err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Watch),
new(Action), new(Access)); err != nil {