From cf9d4716310638ca047e93e476886b4e4ae0ce39 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 27 Dec 2020 07:28:47 +0800 Subject: [PATCH] Change topic name size from 25 to 50 (#14150) * Change topic name size from 25 to 50 * recreateTable requires full bean definition Signed-off-by: Andrew Thornton Co-authored-by: zeripath --- models/migrations/migrations.go | 2 ++ models/migrations/v163.go | 34 +++++++++++++++++++++++++++++++++ models/topic.go | 2 +- 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 models/migrations/v163.go diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index cac36edf5..657046042 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -269,6 +269,8 @@ var migrations = []Migration{ NewMigration("Convert task type from int to string", convertTaskTypeToString), // v162 -> v163 NewMigration("Convert webhook task type from int to string", convertWebhookTaskTypeToString), + // v163 -> v164 + NewMigration("Convert topic name from 25 to 50", convertTopicNameFrom25To50), } // GetCurrentDBVersion returns the current db version diff --git a/models/migrations/v163.go b/models/migrations/v163.go new file mode 100644 index 000000000..150cc34f0 --- /dev/null +++ b/models/migrations/v163.go @@ -0,0 +1,34 @@ +// Copyright 2020 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 ( + "xorm.io/xorm" +) + +func convertTopicNameFrom25To50(x *xorm.Engine) error { + type Topic struct { + ID int64 `xorm:"pk autoincr"` + Name string `xorm:"UNIQUE VARCHAR(50)"` + RepoCount int + CreatedUnix int64 `xorm:"INDEX created"` + UpdatedUnix int64 `xorm:"INDEX updated"` + } + + if err := x.Sync2(new(Topic)); err != nil { + return err + } + + sess := x.NewSession() + defer sess.Close() + if err := sess.Begin(); err != nil { + return err + } + if err := recreateTable(sess, new(Topic)); err != nil { + return err + } + + return sess.Commit() +} diff --git a/models/topic.go b/models/topic.go index 6be4f1029..1969c57db 100644 --- a/models/topic.go +++ b/models/topic.go @@ -26,7 +26,7 @@ var topicPattern = regexp.MustCompile(`^[a-z0-9][a-z0-9-]*$`) // Topic represents a topic of repositories type Topic struct { ID int64 `xorm:"pk autoincr"` - Name string `xorm:"UNIQUE VARCHAR(25)"` + Name string `xorm:"UNIQUE VARCHAR(50)"` RepoCount int CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`