ソースを参照

Alter hook_task TEXT fields to LONGTEXT (#20038)

Mysql TEXT has a limit of 64KB, change this to LONGTEXT in mysql only so we can have bigger hook payloads.

Postgresql has unlimited TEXT - https://www.postgresql.org/docs/current/datatype-character.html
Sqlite has unlimited TEXT - https://www.sqlitetutorial.net/sqlite-data-types/#:~:text=The%20maximum%20length%20of%20TEXT,SQLite%20supports%20various%20character%20encodings.

Same issue as #16656 but for hook_task

Fixes #10252, #19679, #3561
tags/v1.18.0-rc0
Wim 2年前
コミット
62104b4896
コミッターのメールアドレスに関連付けられたアカウントが存在しません
3個のファイルの変更31行の追加3行の削除
  1. 2
    0
      models/migrations/migrations.go
  2. 26
    0
      models/migrations/v217.go
  3. 3
    3
      models/webhook/hooktask.go

+ 2
- 0
models/migrations/migrations.go ファイルの表示

NewMigration("allow to view files in PRs", addReviewViewedFiles), NewMigration("allow to view files in PRs", addReviewViewedFiles),
// v216 -> v217 // v216 -> v217
NewMigration("Improve Action table indices", improveActionTableIndices), NewMigration("Improve Action table indices", improveActionTableIndices),
// v217 -> v218
NewMigration("Alter hook_task table TEXT fields to LONGTEXT", alterHookTaskTextFieldsToLongText),
} }


// GetCurrentDBVersion returns the current db version // GetCurrentDBVersion returns the current db version

+ 26
- 0
models/migrations/v217.go ファイルの表示

// Copyright 2022 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 (
"code.gitea.io/gitea/modules/setting"

"xorm.io/xorm"
)

func alterHookTaskTextFieldsToLongText(x *xorm.Engine) error {
sess := x.NewSession()
defer sess.Close()
if err := sess.Begin(); err != nil {
return err
}

if setting.Database.UseMySQL {
if _, err := sess.Exec("ALTER TABLE `hook_task` CHANGE `payload_content` `payload_content` LONGTEXT, CHANGE `request_content` `request_content` LONGTEXT, change `response_content` `response_content` LONGTEXT"); err != nil {
return err
}
}
return sess.Commit()
}

+ 3
- 3
models/webhook/hooktask.go ファイルの表示

HookID int64 HookID int64
UUID string UUID string
api.Payloader `xorm:"-"` api.Payloader `xorm:"-"`
PayloadContent string `xorm:"TEXT"`
PayloadContent string `xorm:"LONGTEXT"`
EventType HookEventType EventType HookEventType
IsDelivered bool IsDelivered bool
Delivered int64 Delivered int64


// History info. // History info.
IsSucceed bool IsSucceed bool
RequestContent string `xorm:"TEXT"`
RequestContent string `xorm:"LONGTEXT"`
RequestInfo *HookRequest `xorm:"-"` RequestInfo *HookRequest `xorm:"-"`
ResponseContent string `xorm:"TEXT"`
ResponseContent string `xorm:"LONGTEXT"`
ResponseInfo *HookResponse `xorm:"-"` ResponseInfo *HookResponse `xorm:"-"`
} }



読み込み中…
キャンセル
保存