mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Fix bug on migration 147 (#12565)
This commit is contained in:
		@@ -82,51 +82,73 @@ func createReviewsForCodeComments(x *xorm.Engine) error {
 | 
				
			|||||||
	if err := x.Sync2(new(Review), new(Comment)); err != nil {
 | 
						if err := x.Sync2(new(Review), new(Comment)); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	sess := x.NewSession()
 | 
					 | 
				
			||||||
	defer sess.Close()
 | 
					 | 
				
			||||||
	if err := sess.Begin(); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if err := sess.Where("review_id = 0 and type = 21").Iterate(new(Comment), func(idx int, bean interface{}) error {
 | 
					 | 
				
			||||||
		comment := bean.(*Comment)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		review := &Review{
 | 
						var updateComment = func(comments []*Comment) error {
 | 
				
			||||||
			Type:             ReviewTypeComment,
 | 
							sess := x.NewSession()
 | 
				
			||||||
			ReviewerID:       comment.PosterID,
 | 
							defer sess.Close()
 | 
				
			||||||
			IssueID:          comment.IssueID,
 | 
							if err := sess.Begin(); err != nil {
 | 
				
			||||||
			Official:         false,
 | 
					 | 
				
			||||||
			CommitID:         comment.CommitSHA,
 | 
					 | 
				
			||||||
			Stale:            comment.Invalidated,
 | 
					 | 
				
			||||||
			OriginalAuthor:   comment.OriginalAuthor,
 | 
					 | 
				
			||||||
			OriginalAuthorID: comment.OriginalAuthorID,
 | 
					 | 
				
			||||||
			CreatedUnix:      comment.CreatedUnix,
 | 
					 | 
				
			||||||
			UpdatedUnix:      comment.CreatedUnix,
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if _, err := sess.NoAutoTime().Insert(review); err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		reviewComment := &Comment{
 | 
							for _, comment := range comments {
 | 
				
			||||||
			Type:             22,
 | 
								review := &Review{
 | 
				
			||||||
			PosterID:         comment.PosterID,
 | 
									Type:             ReviewTypeComment,
 | 
				
			||||||
			Content:          "",
 | 
									ReviewerID:       comment.PosterID,
 | 
				
			||||||
			IssueID:          comment.IssueID,
 | 
									IssueID:          comment.IssueID,
 | 
				
			||||||
			ReviewID:         review.ID,
 | 
									Official:         false,
 | 
				
			||||||
			OriginalAuthor:   comment.OriginalAuthor,
 | 
									CommitID:         comment.CommitSHA,
 | 
				
			||||||
			OriginalAuthorID: comment.OriginalAuthorID,
 | 
									Stale:            comment.Invalidated,
 | 
				
			||||||
			CreatedUnix:      comment.CreatedUnix,
 | 
									OriginalAuthor:   comment.OriginalAuthor,
 | 
				
			||||||
			UpdatedUnix:      comment.CreatedUnix,
 | 
									OriginalAuthorID: comment.OriginalAuthorID,
 | 
				
			||||||
 | 
									CreatedUnix:      comment.CreatedUnix,
 | 
				
			||||||
 | 
									UpdatedUnix:      comment.CreatedUnix,
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if _, err := sess.NoAutoTime().Insert(review); err != nil {
 | 
				
			||||||
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								reviewComment := &Comment{
 | 
				
			||||||
 | 
									Type:             22,
 | 
				
			||||||
 | 
									PosterID:         comment.PosterID,
 | 
				
			||||||
 | 
									Content:          "",
 | 
				
			||||||
 | 
									IssueID:          comment.IssueID,
 | 
				
			||||||
 | 
									ReviewID:         review.ID,
 | 
				
			||||||
 | 
									OriginalAuthor:   comment.OriginalAuthor,
 | 
				
			||||||
 | 
									OriginalAuthorID: comment.OriginalAuthorID,
 | 
				
			||||||
 | 
									CreatedUnix:      comment.CreatedUnix,
 | 
				
			||||||
 | 
									UpdatedUnix:      comment.CreatedUnix,
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if _, err := sess.NoAutoTime().Insert(reviewComment); err != nil {
 | 
				
			||||||
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								comment.ReviewID = review.ID
 | 
				
			||||||
 | 
								if _, err := sess.ID(comment.ID).Cols("review_id").NoAutoTime().Update(comment); err != nil {
 | 
				
			||||||
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if _, err := sess.NoAutoTime().Insert(reviewComment); err != nil {
 | 
					
 | 
				
			||||||
 | 
							return sess.Commit()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var start = 0
 | 
				
			||||||
 | 
						var batchSize = 100
 | 
				
			||||||
 | 
						for {
 | 
				
			||||||
 | 
							var comments = make([]*Comment, 0, batchSize)
 | 
				
			||||||
 | 
							if err := x.Where("review_id = 0 and type = 21").Limit(batchSize, start).Find(&comments); err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		comment.ReviewID = review.ID
 | 
							if err := updateComment(comments); err != nil {
 | 
				
			||||||
		_, err := sess.ID(comment.ID).Cols("review_id").NoAutoTime().Update(comment)
 | 
								return err
 | 
				
			||||||
		return err
 | 
							}
 | 
				
			||||||
	}); err != nil {
 | 
					
 | 
				
			||||||
		return err
 | 
							start += len(comments)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if len(comments) < batchSize {
 | 
				
			||||||
 | 
								break
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return sess.Commit()
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user