diff --git a/models/models.go b/models/models.go index a9436fca8..b7986fed1 100644 --- a/models/models.go +++ b/models/models.go @@ -89,8 +89,13 @@ func getEngine() (*xorm.Engine, error) { cnnstr := "" switch DbCfg.Type { case "mysql": - cnnstr = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8", - DbCfg.User, DbCfg.Passwd, DbCfg.Host, DbCfg.Name) + if DbCfg.Host[0] == '/' { // looks like a unix socket + cnnstr = fmt.Sprintf("%s:%s@unix(%s)/%s?charset=utf8", + DbCfg.User, DbCfg.Passwd, DbCfg.Host, DbCfg.Name) + } else { + cnnstr = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8", + DbCfg.User, DbCfg.Passwd, DbCfg.Host, DbCfg.Name) + } case "postgres": var host, port = "127.0.0.1", "5432" fields := strings.Split(DbCfg.Host, ":")