forked from NYANDEV/forgejo
2dc6571085
There appears to be a strange bug whereby the comment_id index can sometimes be missed or missing from the action table despite the sync2 that should create it in the earlier part of this migration. However, looking through the code for Sync2 there is no need for this pre-code to exist and Sync2 should drop/create the indices as necessary. I think therefore we should simplify the migration to simply be Sync2. Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de>
46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
// Copyright 2022 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/timeutil"
|
|
|
|
"xorm.io/xorm"
|
|
"xorm.io/xorm/schemas"
|
|
)
|
|
|
|
type improveActionTableIndicesAction struct {
|
|
ID int64 `xorm:"pk autoincr"`
|
|
UserID int64 // Receiver user id.
|
|
OpType int
|
|
ActUserID int64 // Action user id.
|
|
RepoID int64
|
|
CommentID int64 `xorm:"INDEX"`
|
|
IsDeleted bool `xorm:"NOT NULL DEFAULT false"`
|
|
RefName string
|
|
IsPrivate bool `xorm:"NOT NULL DEFAULT false"`
|
|
Content string `xorm:"TEXT"`
|
|
CreatedUnix timeutil.TimeStamp `xorm:"created"`
|
|
}
|
|
|
|
// TableName sets the name of this table
|
|
func (a *improveActionTableIndicesAction) TableName() string {
|
|
return "action"
|
|
}
|
|
|
|
// TableIndices implements xorm's TableIndices interface
|
|
func (a *improveActionTableIndicesAction) TableIndices() []*schemas.Index {
|
|
actUserIndex := schemas.NewIndex("au_r_c_u_d", schemas.IndexType)
|
|
actUserIndex.AddColumn("act_user_id", "repo_id", "created_unix", "user_id", "is_deleted")
|
|
|
|
repoIndex := schemas.NewIndex("r_c_u_d", schemas.IndexType)
|
|
repoIndex.AddColumn("repo_id", "created_unix", "user_id", "is_deleted")
|
|
|
|
return []*schemas.Index{actUserIndex, repoIndex}
|
|
}
|
|
|
|
func improveActionTableIndices(x *xorm.Engine) error {
|
|
return x.Sync2(&improveActionTableIndicesAction{})
|
|
}
|