From 52dd383b6d333cd9534f97ad4ac260f6fc9bec23 Mon Sep 17 00:00:00 2001 From: zeripath Date: Thu, 16 Feb 2023 18:08:40 +0000 Subject: [PATCH] Increase Content field size of gpg_key_import to MEDIUMTEXT (#22897) Unfortunately #20896 does not completely prevent Data too long issues and GPGKeyImport needs to be increased too. Fix #22896 Signed-off-by: Andrew Thornton --- models/asymkey/gpg_key_import.go | 2 +- models/migrations/migrations.go | 2 ++ models/migrations/v1_19/v242.go | 26 ++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 models/migrations/v1_19/v242.go diff --git a/models/asymkey/gpg_key_import.go b/models/asymkey/gpg_key_import.go index 5b5ef4fab..83881b5c2 100644 --- a/models/asymkey/gpg_key_import.go +++ b/models/asymkey/gpg_key_import.go @@ -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() { diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 79e857388..73c44f008 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -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_key_import content TEXT field to MEDIUMTEXT", v1_19.AlterPublicGPGKeyImportContentFieldToMediumText), } // GetCurrentDBVersion returns the current db version diff --git a/models/migrations/v1_19/v242.go b/models/migrations/v1_19/v242.go new file mode 100644 index 000000000..517c7767b --- /dev/null +++ b/models/migrations/v1_19/v242.go @@ -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" +) + +// AlterPublicGPGKeyImportContentFieldToMediumText: set GPGKeyImport Content field to MEDIUMTEXT +func AlterPublicGPGKeyImportContentFieldToMediumText(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_import` CHANGE `content` `content` MEDIUMTEXT"); err != nil { + return err + } + } + return sess.Commit() +}