aboutsummaryrefslogtreecommitdiff
path: root/models/migrations
diff options
context:
space:
mode:
Diffstat (limited to 'models/migrations')
-rw-r--r--models/migrations/migrations.go8
-rw-r--r--models/migrations/v13.go10
-rw-r--r--models/migrations/v15.go2
-rw-r--r--models/migrations/v16.go4
-rw-r--r--models/migrations/v18.go34
5 files changed, 47 insertions, 11 deletions
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index 5192419b..44496a15 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -13,7 +13,7 @@ import (
"github.com/go-xorm/xorm"
log "gopkg.in/clog.v1"
- "github.com/gogits/gogs/pkg/tool"
+ "github.com/gogs/gogs/pkg/tool"
)
const _MIN_DB_VER = 10
@@ -64,6 +64,8 @@ var migrations = []Migration{
NewMigration("update repository sizes", updateRepositorySizes),
// v16 -> v17:v0.10.31
NewMigration("remove invalid protect branch whitelist", removeInvalidProtectBranchWhitelist),
+ // v17 -> v18:v0.11.48
+ NewMigration("store long text in repository description field", updateRepositoryDescriptionField),
// v18 -> v19:v0.11.55
NewMigration("clean unlinked webhook and hook_tasks", cleanUnlinkedWebhookAndHookTasks),
}
@@ -100,9 +102,9 @@ You can migrate your older database using a previous release, then you can upgra
Please save following instructions to somewhere and start working:
- If you were using below 0.6.0 (e.g. 0.5.x), download last supported archive from following link:
- https://github.com/gogits/gogs/releases/tag/v0.7.33
+ https://github.com/gogs/gogs/releases/tag/v0.7.33
- If you were using below 0.7.0 (e.g. 0.6.x), download last supported archive from following link:
- https://github.com/gogits/gogs/releases/tag/v0.9.141
+ https://github.com/gogs/gogs/releases/tag/v0.9.141
Once finished downloading,
diff --git a/models/migrations/v13.go b/models/migrations/v13.go
index f81271f9..3f7e81df 100644
--- a/models/migrations/v13.go
+++ b/models/migrations/v13.go
@@ -5,12 +5,12 @@
package migrations
import (
- "encoding/json"
"fmt"
"strings"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
+ "github.com/json-iterator/go"
)
func ldapUseSSLToSecurityProtocol(x *xorm.Engine) error {
@@ -30,17 +30,17 @@ func ldapUseSSLToSecurityProtocol(x *xorm.Engine) error {
for _, result := range results {
cfg := map[string]interface{}{}
- if err = json.Unmarshal(result["cfg"], &cfg); err != nil {
- return fmt.Errorf("decode JSON config: %v", err)
+ if err = jsoniter.Unmarshal(result["cfg"], &cfg); err != nil {
+ return fmt.Errorf("unmarshal JSON config: %v", err)
}
if com.ToStr(cfg["UseSSL"]) == "true" {
cfg["SecurityProtocol"] = 1 // LDAPS
}
delete(cfg, "UseSSL")
- data, err := json.Marshal(&cfg)
+ data, err := jsoniter.Marshal(&cfg)
if err != nil {
- return fmt.Errorf("encode JSON config: %v", err)
+ return fmt.Errorf("marshal JSON config: %v", err)
}
if _, err = sess.Exec("UPDATE `login_source` SET `cfg`=? WHERE `id`=?",
diff --git a/models/migrations/v15.go b/models/migrations/v15.go
index ebee4964..d6cccb1d 100644
--- a/models/migrations/v15.go
+++ b/models/migrations/v15.go
@@ -15,7 +15,7 @@ import (
"github.com/go-xorm/xorm"
log "gopkg.in/clog.v1"
- "github.com/gogits/gogs/pkg/setting"
+ "github.com/gogs/gogs/pkg/setting"
)
func generateAndMigrateGitHooks(x *xorm.Engine) (err error) {
diff --git a/models/migrations/v16.go b/models/migrations/v16.go
index c5facc81..e95fe10a 100644
--- a/models/migrations/v16.go
+++ b/models/migrations/v16.go
@@ -12,9 +12,9 @@ import (
"github.com/go-xorm/xorm"
log "gopkg.in/clog.v1"
- "github.com/gogits/git-module"
+ "github.com/gogs/git-module"
- "github.com/gogits/gogs/pkg/setting"
+ "github.com/gogs/gogs/pkg/setting"
)
func updateRepositorySizes(x *xorm.Engine) (err error) {
diff --git a/models/migrations/v18.go b/models/migrations/v18.go
new file mode 100644
index 00000000..086cd27a
--- /dev/null
+++ b/models/migrations/v18.go
@@ -0,0 +1,34 @@
+// Copyright 2018 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package migrations
+
+import (
+ "fmt"
+
+ "github.com/go-xorm/xorm"
+
+ "github.com/gogs/gogs/pkg/setting"
+)
+
+func updateRepositoryDescriptionField(x *xorm.Engine) error {
+ exist, err := x.IsTableExist("repository")
+ if err != nil {
+ return fmt.Errorf("IsTableExist: %v", err)
+ } else if !exist {
+ return nil
+ }
+ switch {
+ case setting.UseMySQL:
+ _, err = x.Exec("ALTER TABLE `repository` MODIFY `description` VARCHAR(512);")
+ case setting.UseMSSQL:
+ _, err = x.Exec("ALTER TABLE `repository` ALTER COLUMN `description` VARCHAR(512);")
+ case setting.UsePostgreSQL:
+ _, err = x.Exec("ALTER TABLE `repository` ALTER COLUMN `description` TYPE VARCHAR(512);")
+ case setting.UseSQLite3:
+ // Sqlite3 uses TEXT type by default for any string type field.
+ // Keep this comment to mention that we don't missed any option.
+ }
+ return err
+}