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 <art27@cantab.net>

Co-authored-by: zeripath <art27@cantab.net>
release/v1.15
Lunny Xiao 2020-12-27 07:28:47 +08:00 committed by GitHub
parent 236e70f135
commit cf9d471631
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 1 deletions

View File

@ -269,6 +269,8 @@ var migrations = []Migration{
NewMigration("Convert task type from int to string", convertTaskTypeToString), NewMigration("Convert task type from int to string", convertTaskTypeToString),
// v162 -> v163 // v162 -> v163
NewMigration("Convert webhook task type from int to string", convertWebhookTaskTypeToString), 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 // GetCurrentDBVersion returns the current db version

34
models/migrations/v163.go Normal file
View File

@ -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()
}

View File

@ -26,7 +26,7 @@ var topicPattern = regexp.MustCompile(`^[a-z0-9][a-z0-9-]*$`)
// Topic represents a topic of repositories // Topic represents a topic of repositories
type Topic struct { type Topic struct {
ID int64 `xorm:"pk autoincr"` ID int64 `xorm:"pk autoincr"`
Name string `xorm:"UNIQUE VARCHAR(25)"` Name string `xorm:"UNIQUE VARCHAR(50)"`
RepoCount int RepoCount int
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`