Fixing bug

This commit is contained in:
Unknown 2014-03-30 10:47:08 -04:00
parent 03cc39ea12
commit a6e12aaef6
3 changed files with 43 additions and 6 deletions

View file

@ -17,7 +17,8 @@ import (
)
var (
orm *xorm.Engine
orm *xorm.Engine
HasEngine bool
DbCfg struct {
Type, Host, Name, User, Pwd, Path, SslMode string
@ -34,6 +35,28 @@ func LoadModelsConfig() {
DbCfg.Path = base.Cfg.MustValue("database", "PATH", "data/gogs.db")
}
func NewTestEngine(x *xorm.Engine) (err error) {
switch DbCfg.Type {
case "mysql":
x, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
DbCfg.User, DbCfg.Pwd, DbCfg.Host, DbCfg.Name))
case "postgres":
x, err = xorm.NewEngine("postgres", fmt.Sprintf("user=%s password=%s dbname=%s sslmode=%s",
DbCfg.User, DbCfg.Pwd, DbCfg.Name, DbCfg.SslMode))
case "sqlite3":
os.MkdirAll(path.Dir(DbCfg.Path), os.ModePerm)
x, err = xorm.NewEngine("sqlite3", DbCfg.Path)
default:
return fmt.Errorf("Unknown database type: %s\n", DbCfg.Type)
}
if err != nil {
return fmt.Errorf("models.init(fail to conntect database): %v\n", err)
}
return x.Sync(new(User), new(PublicKey), new(Repository), new(Watch),
new(Action), new(Access), new(Issue), new(Comment))
}
func SetEngine() (err error) {
switch DbCfg.Type {
case "mysql":