Skip to content

Commit 530a672

Browse files
6543Gitea
authored andcommitted
Update issue_index to finish migration (go-gitea#16685) (go-gitea#16687)
* update issue_index to finish migration * One Func to RecalculateIssueIndexForRepo
1 parent 54edf67 commit 530a672

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

models/issue.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,31 @@ func newIssue(e *xorm.Session, doer *User, opts NewIssueOptions) (err error) {
988988
return opts.Issue.addCrossReferences(e, doer, false)
989989
}
990990

991+
// RecalculateIssueIndexForRepo create issue_index for repo if not exist and
992+
// update it based on highest index of existing issues assigned to a repo
993+
func RecalculateIssueIndexForRepo(repoID int64) error {
994+
sess := x.NewSession()
995+
defer sess.Close()
996+
if err := sess.Begin(); err != nil {
997+
return err
998+
}
999+
1000+
if err := upsertResourceIndex(sess, "issue_index", repoID); err != nil {
1001+
return err
1002+
}
1003+
1004+
var max int64
1005+
if _, err := sess.Select(" MAX(`index`)").Table("issue").Where("repo_id=?", repoID).Get(&max); err != nil {
1006+
return err
1007+
}
1008+
1009+
if _, err := sess.Exec("UPDATE `issue_index` SET max_index=? WHERE group_id=?", max, repoID); err != nil {
1010+
return err
1011+
}
1012+
1013+
return sess.Commit()
1014+
}
1015+
9911016
// NewIssue creates new issue with labels for repository.
9921017
func NewIssue(repo *Repository, issue *Issue, labelIDs []int64, uuids []string) (err error) {
9931018
idx, err := GetNextResourceIndex("issue_index", repo.ID)

modules/migrations/gitea_uploader.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,11 @@ func (g *GiteaLocalUploader) Finish() error {
871871
return ErrRepoNotCreated
872872
}
873873

874+
// update issue_index
875+
if err := models.RecalculateIssueIndexForRepo(g.repo.ID); err != nil {
876+
return err
877+
}
878+
874879
g.repo.Status = models.RepositoryReady
875880
return models.UpdateRepositoryCols(g.repo, "status")
876881
}

0 commit comments

Comments
 (0)