Increase Content field size of gpg_key and public_key to MEDIUMTEXT (#20896)
Unfortunately some keys are too big to fix within the 65535 limit of TEXT on MySQL this causes issues with these large keys. Therefore increase these fields to MEDIUMTEXT. Fix #20894 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
							parent
							
								
									aedfc923ad
								
							
						
					
					
						commit
						9d6a2034bc
					
				| @ -33,7 +33,7 @@ type GPGKey struct { | ||||
| 	OwnerID           int64              `xorm:"INDEX NOT NULL"` | ||||
| 	KeyID             string             `xorm:"INDEX CHAR(16) NOT NULL"` | ||||
| 	PrimaryKeyID      string             `xorm:"CHAR(16)"` | ||||
| 	Content           string             `xorm:"TEXT NOT NULL"` | ||||
| 	Content           string             `xorm:"MEDIUMTEXT NOT NULL"` | ||||
| 	CreatedUnix       timeutil.TimeStamp `xorm:"created"` | ||||
| 	ExpiredUnix       timeutil.TimeStamp | ||||
| 	AddedUnix         timeutil.TimeStamp | ||||
|  | ||||
| @ -41,7 +41,7 @@ type PublicKey struct { | ||||
| 	OwnerID       int64           `xorm:"INDEX NOT NULL"` | ||||
| 	Name          string          `xorm:"NOT NULL"` | ||||
| 	Fingerprint   string          `xorm:"INDEX NOT NULL"` | ||||
| 	Content       string          `xorm:"TEXT NOT NULL"` | ||||
| 	Content       string          `xorm:"MEDIUMTEXT NOT NULL"` | ||||
| 	Mode          perm.AccessMode `xorm:"NOT NULL DEFAULT 2"` | ||||
| 	Type          KeyType         `xorm:"NOT NULL DEFAULT 1"` | ||||
| 	LoginSourceID int64           `xorm:"NOT NULL DEFAULT 0"` | ||||
|  | ||||
| @ -406,8 +406,13 @@ var migrations = []Migration{ | ||||
| 	NewMigration("Drop old CredentialID column", dropOldCredentialIDColumn), | ||||
| 	// v223 -> v224
 | ||||
| 	NewMigration("Rename CredentialIDBytes column to CredentialID", renameCredentialIDBytes), | ||||
| 
 | ||||
| 	// Gitea 1.17.0 ends at v224
 | ||||
| 
 | ||||
| 	// v224 -> v225
 | ||||
| 	NewMigration("Add badges to users", creatUserBadgesTable), | ||||
| 	NewMigration("Add badges to users", createUserBadgesTable), | ||||
| 	// v225 -> v226
 | ||||
| 	NewMigration("Alter gpg_key/public_key content TEXT fields to MEDIUMTEXT", alterPublicGPGKeyContentFieldsToMediumText), | ||||
| } | ||||
| 
 | ||||
| // GetCurrentDBVersion returns the current db version
 | ||||
|  | ||||
| @ -8,7 +8,7 @@ import ( | ||||
| 	"xorm.io/xorm" | ||||
| ) | ||||
| 
 | ||||
| func creatUserBadgesTable(x *xorm.Engine) error { | ||||
| func createUserBadgesTable(x *xorm.Engine) error { | ||||
| 	type Badge struct { | ||||
| 		ID          int64 `xorm:"pk autoincr"` | ||||
| 		Description string | ||||
|  | ||||
							
								
								
									
										29
									
								
								models/migrations/v225.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								models/migrations/v225.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
| // 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 alterPublicGPGKeyContentFieldsToMediumText(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 `gpg_key` CHANGE `content` `content` MEDIUMTEXT"); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		if _, err := sess.Exec("ALTER TABLE `public_key` CHANGE `content` `content` MEDIUMTEXT"); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 	return sess.Commit() | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user