* update issue_index to finish migration * One Func to RecalculateIssueIndexForRepo
This commit is contained in:
		
							parent
							
								
									d2d99a25b7
								
							
						
					
					
						commit
						86861ee135
					
				
					 2 changed files with 30 additions and 0 deletions
				
			
		|  | @ -982,6 +982,31 @@ func newIssue(e *xorm.Session, doer *User, opts NewIssueOptions) (err error) { | |||
| 	return opts.Issue.addCrossReferences(e, doer, false) | ||||
| } | ||||
| 
 | ||||
| // RecalculateIssueIndexForRepo create issue_index for repo if not exist and
 | ||||
| // update it based on highest index of existing issues assigned to a repo
 | ||||
| func RecalculateIssueIndexForRepo(repoID int64) error { | ||||
| 	sess := x.NewSession() | ||||
| 	defer sess.Close() | ||||
| 	if err := sess.Begin(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if err := upsertResourceIndex(sess, "issue_index", repoID); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	var max int64 | ||||
| 	if _, err := sess.Select(" MAX(`index`)").Table("issue").Where("repo_id=?", repoID).Get(&max); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if _, err := sess.Exec("UPDATE `issue_index` SET max_index=? WHERE group_id=?", max, repoID); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	return sess.Commit() | ||||
| } | ||||
| 
 | ||||
| // NewIssue creates new issue with labels for repository.
 | ||||
| func NewIssue(repo *Repository, issue *Issue, labelIDs []int64, uuids []string) (err error) { | ||||
| 	idx, err := GetNextResourceIndex("issue_index", repo.ID) | ||||
|  |  | |||
|  | @ -871,6 +871,11 @@ func (g *GiteaLocalUploader) Finish() error { | |||
| 		return ErrRepoNotCreated | ||||
| 	} | ||||
| 
 | ||||
| 	// update issue_index
 | ||||
| 	if err := models.RecalculateIssueIndexForRepo(g.repo.ID); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	g.repo.Status = models.RepositoryReady | ||||
| 	return models.UpdateRepositoryCols(g.repo, "status") | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue