diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2020-01-15 19:14:07 +0800 |
---|---|---|
committer | Antoine GIRARD <sapk@users.noreply.github.com> | 2020-01-15 12:14:07 +0100 |
commit | 2b3e931cde3e3d70b69202164f35fc6f2c609ade (patch) | |
tree | dd519a5741642dde99433028d0e7d0e9da7b67c9 /models/issue.go | |
parent | 4e566df1c694e47908e59a6db163e5a98d144b83 (diff) | |
download | gitea-2b3e931cde3e3d70b69202164f35fc6f2c609ade.tar.gz gitea-2b3e931cde3e3d70b69202164f35fc6f2c609ade.zip |
Migrate reactions when migrating repository from github (#9599)
* Migrate reactions when migrating repository from github
* fix missed sleep
* fix tests
* update reactions when external user binding
* Fix test
* fix tests
* change the copy head
* fix test
* fix migrator add/delete reaction
Diffstat (limited to 'models/issue.go')
-rw-r--r-- | models/issue.go | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/models/issue.go b/models/issue.go index b6408365f7..1c6b930d2e 100644 --- a/models/issue.go +++ b/models/issue.go @@ -218,8 +218,11 @@ func (issue *Issue) loadReactions(e Engine) (err error) { if err != nil { return err } + if err = issue.loadRepo(e); err != nil { + return err + } // Load reaction user data - if _, err := ReactionList(reactions).loadUsers(e); err != nil { + if _, err := ReactionList(reactions).loadUsers(e, issue.Repo); err != nil { return err } @@ -1836,3 +1839,17 @@ func UpdateIssuesMigrationsByType(gitServiceType structs.GitServiceType, origina }) return err } + +// UpdateReactionsMigrationsByType updates all migrated repositories' reactions from gitServiceType to replace originalAuthorID to posterID +func UpdateReactionsMigrationsByType(gitServiceType structs.GitServiceType, originalAuthorID string, userID int64) error { + _, err := x.Table("reaction"). + Join("INNER", "issue", "issue.id = reaction.issue_id"). + Where("issue.repo_id IN (SELECT id FROM repository WHERE original_service_type = ?)", gitServiceType). + And("reaction.original_author_id = ?", originalAuthorID). + Update(map[string]interface{}{ + "user_id": userID, + "original_author": "", + "original_author_id": 0, + }) + return err +} |