summaryrefslogtreecommitdiffstats
path: root/models/migrations
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2020-12-08 18:41:14 +0800
committerGitHub <noreply@github.com>2020-12-08 11:41:14 +0100
commit42354dfe45fa0cabb59674b896c44a55a56cf163 (patch)
tree86b859881da6ef6bf288183933d7bc519dedc3d4 /models/migrations
parent4d66ee1f74799196cbdbfd925c3f95e552584b42 (diff)
downloadgitea-42354dfe45fa0cabb59674b896c44a55a56cf163.tar.gz
gitea-42354dfe45fa0cabb59674b896c44a55a56cf163.zip
Move webhook type from int to string (#13664)
* Move webhook type from int to string * rename webhook_services * finish refactor * Fix merge * Ignore unnecessary ci Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
Diffstat (limited to 'models/migrations')
-rw-r--r--models/migrations/migrations.go2
-rw-r--r--models/migrations/v161.go59
2 files changed, 61 insertions, 0 deletions
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index d1f2c750e3..b58c0551b5 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -265,6 +265,8 @@ var migrations = []Migration{
NewMigration("update reactions constraint", updateReactionConstraint),
// v160 -> v161
NewMigration("Add block on official review requests branch protection", addBlockOnOfficialReviewRequests),
+ // v161 -> v162
+ NewMigration("Convert task type from int to string", convertTaskTypeToString),
}
// GetCurrentDBVersion returns the current db version
diff --git a/models/migrations/v161.go b/models/migrations/v161.go
new file mode 100644
index 0000000000..127dca1500
--- /dev/null
+++ b/models/migrations/v161.go
@@ -0,0 +1,59 @@
+// Copyright 2020 The Gitea 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 (
+ "xorm.io/xorm"
+)
+
+func convertTaskTypeToString(x *xorm.Engine) error {
+ const (
+ GOGS int = iota + 1
+ SLACK
+ GITEA
+ DISCORD
+ DINGTALK
+ TELEGRAM
+ MSTEAMS
+ FEISHU
+ MATRIX
+ )
+
+ var hookTaskTypes = map[int]string{
+ GITEA: "gitea",
+ GOGS: "gogs",
+ SLACK: "slack",
+ DISCORD: "discord",
+ DINGTALK: "dingtalk",
+ TELEGRAM: "telegram",
+ MSTEAMS: "msteams",
+ FEISHU: "feishu",
+ MATRIX: "matrix",
+ }
+
+ type HookTask struct {
+ Typ string `xorm:"char(16) index"`
+ }
+ if err := x.Sync2(new(HookTask)); err != nil {
+ return err
+ }
+
+ for i, s := range hookTaskTypes {
+ if _, err := x.Exec("UPDATE hook_task set typ = ? where type=?", s, i); err != nil {
+ return err
+ }
+ }
+
+ sess := x.NewSession()
+ defer sess.Close()
+ if err := sess.Begin(); err != nil {
+ return err
+ }
+ if err := dropTableColumns(sess, "hook_task", "type"); err != nil {
+ return err
+ }
+
+ return sess.Commit()
+}