Skip to content

Commit

Permalink
Increase Content field size of gpg_import_key to MEDIUMTEXT
Browse files Browse the repository at this point in the history
Unfortunately go-gitea#20896 does not completely prevent Data too long issues and
GPGImportKey needs to be increased too.

Fix go-gitea#22896

Signed-off-by: Andrew Thornton <art27@cantab.net>
  • Loading branch information
zeripath committed Feb 13, 2023
1 parent 7b5b739 commit c6142fb
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion models/asymkey/gpg_key_import.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import "code.gitea.io/gitea/models/db"
// GPGKeyImport the original import of key
type GPGKeyImport struct {
KeyID string `xorm:"pk CHAR(16) NOT NULL"`
Content string `xorm:"TEXT NOT NULL"`
Content string `xorm:"MEDIUMTEXT NOT NULL"`
}

func init() {
Expand Down
2 changes: 2 additions & 0 deletions models/migrations/migrations.go
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,8 @@ var migrations = []Migration{
NewMigration("Add actions tables", v1_19.AddActionsTables),
// v241 -> v242
NewMigration("Add card_type column to project table", v1_19.AddCardTypeToProjectTable),
// v242 -> v243
NewMigration("Alter gpg_import_key content TEXT field to MEDIUMTEXT", v1_19.AlterPublicGPGImportKeyContentFieldToMediumText),
}

// GetCurrentDBVersion returns the current db version
Expand Down
25 changes: 25 additions & 0 deletions models/migrations/v1_19/v242.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT

package v1_19 //nolint

import (
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
)

// AlterPublicGPGImportKeyContentFieldToMediumText: set GPGImportKey Content field to MEDIUMTEXT
func AlterPublicGPGImportKeyContentFieldToMediumText(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_import_key` CHANGE `content` `content` MEDIUMTEXT"); err != nil {
return err
}
}
return sess.Commit()
}

0 comments on commit c6142fb

Please sign in to comment.