-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix wrong xorm get usage on migration #27111
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, the main change is that we use an INNER
join instead of an implicit LEFT
join?
And that fixes problems?
@@ -118,7 +123,9 @@ func migratePushMirrors(x *xorm.Engine) error { | |||
|
|||
for { | |||
var mirrors []PushMirror | |||
if err := sess.Limit(limit, start).Find(&mirrors); err != nil { | |||
if err := sess.Select("push_mirror.id, push_mirror.repo_id, push_mirror.remote_name, push_mirror.remote_address, repository.owner_name as repo_owner, repository.name as repo_name"). | |||
Join("INNER", "repository", "repository.id = push_mirror.repo_id"). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we are already at it, can we also use
Join("INNER", "repository", "repository.id = push_mirror.repo_id"). | |
Join("INNER", "repository", "repository.id = push_mirror.repo_id"). | |
Where("push_mirror.remote_address IS NULL") |
?
That way, the migration at least becomes symmetric.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since remote_address is not an index column and the second update will not affect anything, I don't think it's necessary for this change.
@@ -59,7 +60,9 @@ func migratePullMirrors(x *xorm.Engine) error { | |||
|
|||
for { | |||
var mirrors []Mirror | |||
if err := sess.Limit(limit, start).Find(&mirrors); err != nil { | |||
if err := sess.Select("mirror.id, mirror.repo_id, mirror.remote_address, repository.owner_name as repo_owner, repository.name as repo_name"). | |||
Join("INNER", "repository", "repository.id = mirror.repo_id"). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Join("INNER", "repository", "repository.id = mirror.repo_id"). | |
Join("INNER", "repository", "repository.id = mirror.repo_id"). | |
Where("mirror.remote_address IS NULL") |
Co-authored-by: Jason Song <i@wolfogre.com>
Isn't the problem that there are mirrors in the database which do not exist in the file system? I don't think we should work around that in the migration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not blocking this PR. I agree with @delvh 's feedback. I had encountered same problem with Archived Label migration.
I don't see how the change should be related to the error message. |
This PR will ignore the empty repository and repositories which status is not ready. So reading git repository should not be failed. |
If there is a mirror the repo path must exists: gitea/services/repository/create.go Line 241 in 323135b
push mirror gitea/services/mirror/mirror_push.go Line 29 in 323135b
and following lines |
That PR should not have merged at that point... See also https://discord.com/channels/322538954119184384/322910365237248000/1153441247940321391 and the following messages. |
Please review #27132 |
* giteaofficial/main: Improve actions docs related to `pull_request` event (go-gitea#27126) Remove outdated paragraphs when comparing Gitea Actions to GitHub Actions (go-gitea#27119) Fix: treat tab "overview" as "repositories" in user profiles without readme (go-gitea#27124) Fix incorrect test code for error handling (go-gitea#27139) Increase auth provider icon size on login page (go-gitea#27122) fix pagination for followers and following (go-gitea#27127) services/wiki: Close() after error handling (go-gitea#27129) Use fetch helpers instead of fetch (go-gitea#27026) Change green buttons to primary color (go-gitea#27099) Fix wrong xorm get usage on migration (go-gitea#27111) Fix the incorrect route path in the user edit page. (go-gitea#27007) Refactor lfs requests (go-gitea#26783) Display archived labels specially when listing labels (go-gitea#26820) Remove a `gt-float-right` and some unnecessary helpers (go-gitea#27110) [skip ci] Updated licenses and gitignores Fix token endpoints ignore specified account (go-gitea#27080) Make SSPI auth mockable (go-gitea#27036)
* origin/main: Fix dropdown icon position (go-gitea#27175) Fix repo sub menu (go-gitea#27169) Fix review request number and add more tests (go-gitea#27104) Fix the variable regexp pattern on web page (go-gitea#27161) Fix organization field being null in POST /orgs/{orgid}/teams (go-gitea#27150) Add index to `issue_user.issue_id` (go-gitea#27154) [skip ci] Updated translations via Crowdin Start development on Gitea 1.22 (go-gitea#27155) Fix successful return value for `SyncAndGetUserSpecificDiff` (go-gitea#27152) Improve actions docs related to `pull_request` event (go-gitea#27126) Remove outdated paragraphs when comparing Gitea Actions to GitHub Actions (go-gitea#27119) Fix: treat tab "overview" as "repositories" in user profiles without readme (go-gitea#27124) Fix incorrect test code for error handling (go-gitea#27139) Increase auth provider icon size on login page (go-gitea#27122) fix pagination for followers and following (go-gitea#27127) services/wiki: Close() after error handling (go-gitea#27129) Use fetch helpers instead of fetch (go-gitea#27026) Change green buttons to primary color (go-gitea#27099) Fix wrong xorm get usage on migration (go-gitea#27111)
Fix the bug on try.gitea.io
Caused by #26952