Browse Source

add tidb support

tags/v0.9.99
Unknwon 8 years ago
parent
commit
aff773f1b9

+ 2
- 2
.bra.toml View File

@@ -13,7 +13,7 @@ watch_dirs = [
watch_exts = [".go"]
build_delay = 1500
cmds = [
["go", "install", "-tags", "sqlite"],# redis memcache cert pam tidb
["go", "build", "-tags", "sqlite"],
["go", "install", "-tags", "sqlite tidb"],# redis memcache cert pam
["go", "build", "-tags", "sqlite tidb"],
["./gogs", "web"]
]

+ 1
- 1
conf/app.ini View File

@@ -65,7 +65,7 @@ USER = root
PASSWD =
; For "postgres" only, either "disable", "require" or "verify-full"
SSL_MODE = disable
; For "sqlite3" only
; For "sqlite3" and "tidb"
PATH = data/gogs.db

[admin]

+ 5
- 2
conf/locale/locale_en-US.ini View File

@@ -65,7 +65,10 @@ db_helper = Please use INNODB engine with utf8_general_ci charset for MySQL.
ssl_mode = SSL Mode
path = Path
sqlite_helper = The file path of SQLite3 database.
err_empty_sqlite_path = SQLite3 database path cannot be empty.
err_empty_db_path = SQLite3 or TiDB database path cannot be empty.
err_invalid_tidb_name = TiDB database name does not allow characters "." and "-".
no_admin_and_disable_registration = You cannot disable registration without creating an admin account.
err_empty_admin_password = Admin password cannot be empty.

general_title = Application General Settings
app_name = Application Name
@@ -868,7 +871,7 @@ config.db_user = User
config.db_ssl_mode = SSL Mode
config.db_ssl_mode_helper = (for "postgres" only)
config.db_path = Path
config.db_path_helper = (for "sqlite3" only)
config.db_path_helper = (for "sqlite3" and "tidb")
config.service_config = Service Configuration
config.register_email_confirm = Require E-mail Confirmation
config.disable_register = Disable Registration

+ 3
- 1
models/models.go View File

@@ -55,7 +55,7 @@ func regulateTimeZone(t time.Time) time.Time {
return t
}
hour := com.StrTo(zone[2:3]).MustInt()
minutes := com.StrTo(zone[3:4]).MustInt()
minutes := com.StrTo(zone[3:5]).MustInt()

if zone[0] == '-' {
return t.Add(time.Duration(hour) * time.Hour).Add(time.Duration(minutes) * time.Minute)
@@ -104,6 +104,8 @@ func LoadModelsConfig() {
setting.UseMySQL = true
case "postgres":
setting.UsePostgreSQL = true
case "tidb":
setting.UseTiDB = true
}
DbCfg.Host = sec.Key("HOST").String()
DbCfg.Name = sec.Key("NAME").String()

+ 2
- 0
models/models_tidb.go View File

@@ -8,9 +8,11 @@ package models

import (
_ "github.com/go-xorm/tidb"
"github.com/ngaut/log"
_ "github.com/pingcap/tidb"
)

func init() {
EnableTidb = true
log.SetLevelByString("error")
}

+ 2
- 2
modules/bindata/bindata.go
File diff suppressed because it is too large
View File


+ 1
- 0
modules/setting/setting.go View File

@@ -75,6 +75,7 @@ var (
UseSQLite3 bool
UseMySQL bool
UsePostgreSQL bool
UseTiDB bool

// Webhook settings.
Webhook struct {

+ 27
- 3
routers/install.go View File

@@ -110,7 +110,11 @@ func Install(ctx *middleware.Context) {
ctx.Data["CurDbOption"] = "PostgreSQL"
case "sqlite3":
if models.EnableSQLite3 {
ctx.Data["CurDbOption"] = "SQLite3" // Default when enabled.
ctx.Data["CurDbOption"] = "SQLite3"
}
case "tidb":
if models.EnableTidb {
ctx.Data["CurDbOption"] = "TiDB"
}
}

@@ -183,9 +187,15 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
models.DbCfg.SSLMode = form.SSLMode
models.DbCfg.Path = form.DbPath

if models.DbCfg.Type == "sqlite3" && len(models.DbCfg.Path) == 0 {
if (models.DbCfg.Type == "sqlite3" || models.DbCfg.Type == "tidb") &&
len(models.DbCfg.Path) == 0 {
ctx.Data["Err_DbPath"] = true
ctx.RenderWithErr(ctx.Tr("install.err_empty_db_path"), INSTALL, &form)
return
} else if models.DbCfg.Type == "tidb" &&
strings.ContainsAny(path.Base(models.DbCfg.Path), ".-") {
ctx.Data["Err_DbPath"] = true
ctx.RenderWithErr(ctx.Tr("install.err_empty_sqlite_path"), INSTALL, &form)
ctx.RenderWithErr(ctx.Tr("install.err_invalid_tidb_name"), INSTALL, &form)
return
}

@@ -217,7 +227,21 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
return
}

// Check logic loophole between disable self-registration and no admin account.
if form.DisableRegistration && len(form.AdminName) == 0 {
ctx.Data["Err_Services"] = true
ctx.Data["Err_Admin"] = true
ctx.RenderWithErr(ctx.Tr("install.no_admin_and_disable_registration"), INSTALL, form)
return
}

// Check admin password.
if len(form.AdminName) > 0 && len(form.AdminPasswd) == 0 {
ctx.Data["Err_Admin"] = true
ctx.Data["Err_AdminPasswd"] = true
ctx.RenderWithErr(ctx.Tr("install.err_empty_admin_password"), INSTALL, form)
return
}
if form.AdminPasswd != form.AdminConfirmPasswd {
ctx.Data["Err_Admin"] = true
ctx.Data["Err_AdminPasswd"] = true

+ 1
- 1
templates/install.tmpl View File

@@ -152,7 +152,7 @@

<!-- Server and other services -->
<div class="ui accordion optional field">
<div class="title">
<div class="title {{if .Err_Services}}text red{{end}}">
<i class="icon dropdown"></i>
{{.i18n.Tr "install.server_service_title"}}
</div>

Loading…
Cancel
Save