mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	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
This commit is contained in:
		| @@ -389,6 +389,8 @@ var migrations = []Migration{ | |||||||
| 	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
									
								
								models/migrations/v217.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								models/migrations/v217.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | // 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() | ||||||
|  | } | ||||||
| @@ -105,7 +105,7 @@ type HookTask struct { | |||||||
| 	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 | ||||||
| @@ -113,9 +113,9 @@ type HookTask struct { | |||||||
|  |  | ||||||
| 	// 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:"-"` | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user