From c6142fb68ebbb47163b8df64c5db65faf0533d0a Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Mon, 13 Feb 2023 21:34:48 +0000 Subject: [PATCH 1/5] Increase Content field size of gpg_import_key to MEDIUMTEXT Unfortunately #20896 does not completely prevent Data too long issues and GPGImportKey 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 | 25 +++++++++++++++++++++++++ 3 files changed, 28 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 5b5ef4faba5ed..83881b5c22b1a 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 79e857388165d..af6e019884ea3 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_import_key content TEXT field to MEDIUMTEXT", v1_19.AlterPublicGPGImportKeyContentFieldToMediumText), } // 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 0000000000000..9f200a4eb475a --- /dev/null +++ b/models/migrations/v1_19/v242.go @@ -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() +} From 6c99092d141892ff0ee871cbc5b29e5772640a2f Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 15 Feb 2023 18:31:50 +0800 Subject: [PATCH 2/5] Update models/migrations/v1_19/v242.go --- models/migrations/v1_19/v242.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/v1_19/v242.go b/models/migrations/v1_19/v242.go index 9f200a4eb475a..cc86536c50e9b 100644 --- a/models/migrations/v1_19/v242.go +++ b/models/migrations/v1_19/v242.go @@ -1,4 +1,4 @@ -// Copyright 2022 The Gitea Authors. All rights reserved. +// Copyright 2023 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package v1_19 //nolint From 17e60538368690c247c48d2b8ef2b677e4d07e47 Mon Sep 17 00:00:00 2001 From: John Olheiser Date: Wed, 15 Feb 2023 09:33:58 -0600 Subject: [PATCH 3/5] chore: fmt --- models/migrations/v1_19/v242.go | 1 + 1 file changed, 1 insertion(+) diff --git a/models/migrations/v1_19/v242.go b/models/migrations/v1_19/v242.go index cc86536c50e9b..d6e8b5700bf20 100644 --- a/models/migrations/v1_19/v242.go +++ b/models/migrations/v1_19/v242.go @@ -5,6 +5,7 @@ package v1_19 //nolint import ( "code.gitea.io/gitea/modules/setting" + "xorm.io/xorm" ) From 710397c255960e69a8915aa6aa583d439e21c2df Mon Sep 17 00:00:00 2001 From: zeripath Date: Wed, 15 Feb 2023 22:57:23 +0000 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: John Olheiser --- models/migrations/migrations.go | 2 +- models/migrations/v1_19/v242.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index af6e019884ea3..73c44f008a6cc 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -458,7 +458,7 @@ var migrations = []Migration{ // 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), + 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 index d6e8b5700bf20..63aa7d1a5cbe0 100644 --- a/models/migrations/v1_19/v242.go +++ b/models/migrations/v1_19/v242.go @@ -18,7 +18,7 @@ func AlterPublicGPGImportKeyContentFieldToMediumText(x *xorm.Engine) error { } if setting.Database.UseMySQL { - if _, err := sess.Exec("ALTER TABLE `gpg_import_key` CHANGE `content` `content` MEDIUMTEXT"); err != nil { + if _, err := sess.Exec("ALTER TABLE `gpg_key_import` CHANGE `content` `content` MEDIUMTEXT"); err != nil { return err } } From 7ddd00155dc87eb298f9790bb1028ade847c2e5c Mon Sep 17 00:00:00 2001 From: zeripath Date: Wed, 15 Feb 2023 22:57:34 +0000 Subject: [PATCH 5/5] Apply suggestions from code review Co-authored-by: John Olheiser --- models/migrations/v1_19/v242.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/migrations/v1_19/v242.go b/models/migrations/v1_19/v242.go index 63aa7d1a5cbe0..517c7767b874c 100644 --- a/models/migrations/v1_19/v242.go +++ b/models/migrations/v1_19/v242.go @@ -9,8 +9,8 @@ import ( "xorm.io/xorm" ) -// AlterPublicGPGImportKeyContentFieldToMediumText: set GPGImportKey Content field to MEDIUMTEXT -func AlterPublicGPGImportKeyContentFieldToMediumText(x *xorm.Engine) error { +// 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 {