diff options
author | dlob <dlob@users.noreply.github.com> | 2017-02-14 02:50:00 +0100 |
---|---|---|
committer | 无闻 <u@gogs.io> | 2017-02-13 20:50:00 -0500 |
commit | 5179063e71d7234250209389e6f69db1cd6f0caa (patch) | |
tree | 3715ab896c028c4f53b4f6b797600c488727fc42 /models/models.go | |
parent | ad4bbf517335a6a782def7937de34eed6add6b79 (diff) |
Added mssql support. (#3772)
Diffstat (limited to 'models/models.go')
-rw-r--r-- | models/models.go | 20 |
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.") |