diff options
Diffstat (limited to '')
-rw-r--r-- | models/migrations/v1_14/v165.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/models/migrations/v1_14/v165.go b/models/migrations/v1_14/v165.go new file mode 100644 index 0000000..5b1a779 --- /dev/null +++ b/models/migrations/v1_14/v165.go @@ -0,0 +1,57 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package v1_14 //nolint + +import ( + "code.gitea.io/gitea/models/migrations/base" + + "xorm.io/xorm" + "xorm.io/xorm/schemas" +) + +func ConvertHookTaskTypeToVarcharAndTrim(x *xorm.Engine) error { + dbType := x.Dialect().URI().DBType + if dbType == schemas.SQLITE { // For SQLITE, varchar or char will always be represented as TEXT + return nil + } + + type HookTask struct { //nolint:unused + Typ string `xorm:"VARCHAR(16) index"` + } + + if err := base.ModifyColumn(x, "hook_task", &schemas.Column{ + Name: "typ", + SQLType: schemas.SQLType{ + Name: "VARCHAR", + }, + Length: 16, + Nullable: true, // To keep compatible as nullable + DefaultIsEmpty: true, + }); err != nil { + return err + } + + if _, err := x.Exec("UPDATE hook_task SET typ = TRIM(typ)"); err != nil { + return err + } + + type Webhook struct { //nolint:unused + Type string `xorm:"VARCHAR(16) index"` + } + + if err := base.ModifyColumn(x, "webhook", &schemas.Column{ + Name: "type", + SQLType: schemas.SQLType{ + Name: "VARCHAR", + }, + Length: 16, + Nullable: true, // To keep compatible as nullable + DefaultIsEmpty: true, + }); err != nil { + return err + } + + _, err := x.Exec("UPDATE webhook SET type = TRIM(type)") + return err +} |