From b55c699c62406cb0a98c11e2a3ced99ff12faa41 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Sun, 22 Aug 2021 23:33:05 +0800 Subject: [PATCH] Alter issue/comment table TEXT fields to LONGTEXT (#16765) * Alter issue/comment table TEXT fields to LONGTEXT * Use If not Switch Co-authored-by: zeripath --- models/issue.go | 2 +- models/issue_comment.go | 4 ++-- models/migrations/migrations.go | 2 ++ models/migrations/v191.go | 29 +++++++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 models/migrations/v191.go diff --git a/models/issue.go b/models/issue.go index 804d7dc101..9e63ac4e58 100644 --- a/models/issue.go +++ b/models/issue.go @@ -36,7 +36,7 @@ type Issue struct { OriginalAuthor string OriginalAuthorID int64 `xorm:"index"` Title string `xorm:"name"` - Content string `xorm:"TEXT"` + Content string `xorm:"LONGTEXT"` RenderedContent string `xorm:"-"` Labels []*Label `xorm:"-"` MilestoneID int64 `xorm:"INDEX"` diff --git a/models/issue_comment.go b/models/issue_comment.go index 06b74dff85..10a7d0b114 100644 --- a/models/issue_comment.go +++ b/models/issue_comment.go @@ -155,12 +155,12 @@ type Comment struct { CommitID int64 Line int64 // - previous line / + proposed line TreePath string - Content string `xorm:"TEXT"` + Content string `xorm:"LONGTEXT"` RenderedContent string `xorm:"-"` // Path represents the 4 lines of code cemented by this comment Patch string `xorm:"-"` - PatchQuoted string `xorm:"TEXT patch"` + PatchQuoted string `xorm:"LONGTEXT patch"` CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 13ed70bc4f..6c35d34c97 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -334,6 +334,8 @@ var migrations = []Migration{ NewMigration("Unwrap ldap.Sources", unwrapLDAPSourceCfg), // v190 -> v191 NewMigration("Add agit flow pull request support", addAgitFlowPullRequest), + // v191 -> v192 + NewMigration("Alter issue/comment table TEXT fields to LONGTEXT", alterIssueAndCommentTextFieldsToLongText), } // GetCurrentDBVersion returns the current db version diff --git a/models/migrations/v191.go b/models/migrations/v191.go new file mode 100644 index 0000000000..10dfad4f04 --- /dev/null +++ b/models/migrations/v191.go @@ -0,0 +1,29 @@ +// Copyright 2021 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 alterIssueAndCommentTextFieldsToLongText(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 `issue` CHANGE `content` `content` LONGTEXT"); err != nil { + return err + } + if _, err := sess.Exec("ALTER TABLE `comment` CHANGE `content` `content` LONGTEXT, CHANGE `patch` `patch` LONGTEXT"); err != nil { + return err + } + } + return sess.Commit() +}