2021-01-06 23:11:23 +08:00
// Copyright 2020 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2021-01-06 23:11:23 +08:00
2022-11-02 16:54:36 +08:00
package v1_14 //nolint
2021-01-06 23:11:23 +08:00
import (
2022-11-02 16:54:36 +08:00
"code.gitea.io/gitea/models/migrations/base"
2021-01-06 23:11:23 +08:00
"xorm.io/xorm"
"xorm.io/xorm/schemas"
)
2022-11-02 16:54:36 +08:00
func ConvertHookTaskTypeToVarcharAndTrim ( x * xorm . Engine ) error {
2021-01-06 23:11:23 +08:00
dbType := x . Dialect ( ) . URI ( ) . DBType
if dbType == schemas . SQLITE { // For SQLITE, varchar or char will always be represented as TEXT
return nil
}
2023-04-20 04:08:01 +02:00
type HookTask struct { //nolint:unused
2021-01-06 23:11:23 +08:00
Typ string ` xorm:"VARCHAR(16) index" `
}
2022-11-02 16:54:36 +08:00
if err := base . ModifyColumn ( x , "hook_task" , & schemas . Column {
2021-01-06 23:11:23 +08:00
Name : "typ" ,
SQLType : schemas . SQLType {
Name : "VARCHAR" ,
} ,
2022-06-05 03:18:50 +08:00
Length : 16 ,
Nullable : true , // To keep compatible as nullable
DefaultIsEmpty : true ,
2021-01-06 23:11:23 +08:00
} ) ; err != nil {
return err
}
2024-04-04 18:02:24 +02:00
if _ , err := x . Exec ( "UPDATE hook_task SET typ = TRIM(typ)" ) ; err != nil {
2021-01-06 23:11:23 +08:00
return err
}
2023-04-20 04:08:01 +02:00
type Webhook struct { //nolint:unused
2021-01-06 23:11:23 +08:00
Type string ` xorm:"VARCHAR(16) index" `
}
2022-11-02 16:54:36 +08:00
if err := base . ModifyColumn ( x , "webhook" , & schemas . Column {
2021-01-06 23:11:23 +08:00
Name : "type" ,
SQLType : schemas . SQLType {
Name : "VARCHAR" ,
} ,
2022-06-05 03:18:50 +08:00
Length : 16 ,
Nullable : true , // To keep compatible as nullable
DefaultIsEmpty : true ,
2021-01-06 23:11:23 +08:00
} ) ; err != nil {
return err
}
2024-04-04 18:02:24 +02:00
_ , err := x . Exec ( "UPDATE webhook SET type = TRIM(type)" )
2021-01-06 23:11:23 +08:00
return err
}