aboutsummaryrefslogtreecommitdiff
path: root/models/models.go
diff options
context:
space:
mode:
authordlob <dlob@users.noreply.github.com>2017-02-14 02:50:00 +0100
committer无闻 <u@gogs.io>2017-02-13 20:50:00 -0500
commit5179063e71d7234250209389e6f69db1cd6f0caa (patch)
tree3715ab896c028c4f53b4f6b797600c488727fc42 /models/models.go
parentad4bbf517335a6a782def7937de34eed6add6b79 (diff)
Added mssql support. (#3772)
Diffstat (limited to 'models/models.go')
-rw-r--r--models/models.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/models/models.go b/models/models.go
index 4a7385f1..7ebeac9b 100644
--- a/models/models.go
+++ b/models/models.go
@@ -13,6 +13,7 @@ import (
"path"
"strings"
+ _ "github.com/denisenkom/go-mssqldb"
_ "github.com/go-sql-driver/mysql"
"github.com/go-xorm/core"
"github.com/go-xorm/xorm"
@@ -85,6 +86,8 @@ func LoadConfigs() {
setting.UseMySQL = true
case "postgres":
setting.UsePostgreSQL = true
+ case "mssql":
+ setting.UseMSSQL = true
case "tidb":
setting.UseTiDB = true
}
@@ -113,6 +116,20 @@ func parsePostgreSQLHostPort(info string) (string, string) {
return host, port
}
+func parseMSSQLHostPort(info string) (string, string) {
+ host, port := "127.0.0.1", "1433"
+ if strings.Contains(info, ":") {
+ host = strings.Split(info, ":")[0]
+ port = strings.Split(info, ":")[1]
+ } else if strings.Contains(info, ",") {
+ host = strings.Split(info, ",")[0]
+ port = strings.TrimSpace(strings.Split(info, ",")[1])
+ } else if len(info) > 0 {
+ host = info
+ }
+ return host, port
+}
+
func getEngine() (*xorm.Engine, error) {
connStr := ""
var Param string = "?"
@@ -137,6 +154,9 @@ func getEngine() (*xorm.Engine, error) {
connStr = fmt.Sprintf("postgres://%s:%s@%s:%s/%s%ssslmode=%s",
url.QueryEscape(DbCfg.User), url.QueryEscape(DbCfg.Passwd), host, port, DbCfg.Name, Param, DbCfg.SSLMode)
}
+ case "mssql":
+ host, port := parseMSSQLHostPort(DbCfg.Host)
+ connStr = fmt.Sprintf("server=%s; port=%s; database=%s; user id=%s; password=%s;", host, port, DbCfg.Name, DbCfg.User, DbCfg.Passwd)
case "sqlite3":
if !EnableSQLite3 {
return nil, errors.New("This binary version does not build support for SQLite3.")