Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increase Content field size of gpg_import_key to MEDIUMTEXT #22897

Merged
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),
zeripath marked this conversation as resolved.
Show resolved Hide resolved
}

// GetCurrentDBVersion returns the current db version
Expand Down
26 changes: 26 additions & 0 deletions models/migrations/v1_19/v242.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Copyright 2023 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 {
zeripath marked this conversation as resolved.
Show resolved Hide resolved
sess := x.NewSession()
defer sess.Close()
lunny marked this conversation as resolved.
Show resolved Hide resolved
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 {
zeripath marked this conversation as resolved.
Show resolved Hide resolved
return err
}
}
return sess.Commit()
}