diff options
Diffstat (limited to 'models/models.go')
-rw-r--r-- | models/models.go | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/models/models.go b/models/models.go index 7c28dc5422..d6a6200eb3 100644 --- a/models/models.go +++ b/models/models.go @@ -7,10 +7,9 @@ package models import ( "fmt" "os" - "path/filepath" - "github.com/Unknwon/com" _ "github.com/go-sql-driver/mysql" + _ "github.com/lib/pq" "github.com/lunny/xorm" "github.com/gogits/gogs/modules/base" @@ -47,54 +46,50 @@ func setEngine() { dbName := base.Cfg.MustValue("database", "NAME") dbUser := base.Cfg.MustValue("database", "USER") dbPwd := base.Cfg.MustValue("database", "PASSWD") + sslMode := base.Cfg.MustValue("database", "SSL_MODE") var err error switch dbType { case "mysql": - orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%v:%v@%v/%v?charset=utf8", + orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@%s/%s?charset=utf8", dbUser, dbPwd, dbHost, dbName)) + case "postgres": + orm, err = xorm.NewEngine("postgres", fmt.Sprintf("user=%s password=%s dbname=%s sslmode=%s", + dbUser, dbPwd, dbName, sslMode)) default: fmt.Printf("Unknown database type: %s\n", dbType) os.Exit(2) } - if err != nil { - fmt.Printf("models.init -> fail to conntect database: %s\n", dbType) + fmt.Printf("models.init(fail to conntect database): %v\n", err) os.Exit(2) } - //TODO: for serv command, MUST remove the output to os.stdout, so + // TODO: for serv command, MUST remove the output to os.stdout, so // use log file to instead print to stdout //x.ShowDebug = true //orm.ShowErr = true - f, _ := os.Create("xorm.log") + f, err := os.Create("xorm.log") + if err != nil { + fmt.Printf("models.init(fail to create xorm.log): %v\n", err) + os.Exit(2) + } orm.Logger = f orm.ShowSQL = true + // Determine and create root git reposiroty path. RepoRootPath = base.Cfg.MustValue("repository", "ROOT") if err = os.MkdirAll(RepoRootPath, os.ModePerm); err != nil { - fmt.Printf("models.init -> fail to create RepoRootPath(%s): %v\n", RepoRootPath, err) - os.Exit(2) - } - - homeDir, err := com.HomeDir() - if err != nil { - fmt.Printf("models.init -> fail to get homeDir: %v\n", err) - os.Exit(2) - } - sshPath := filepath.Join(homeDir, ".ssh") - if err = os.MkdirAll(sshPath, os.ModePerm); err != nil { - fmt.Printf("models.init -> fail to create sshPath(%s): %v\n", sshPath, err) + fmt.Printf("models.init(fail to create RepoRootPath(%s)): %v\n", RepoRootPath, err) os.Exit(2) } } func init() { setEngine() - err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Access), new(Action)) - if err != nil { - fmt.Printf("sync database struct error: %s\n", err) + if err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Access), new(Action)); err != nil { + fmt.Printf("sync database struct error: %v\n", err) os.Exit(2) } } |