mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-22 05:36:16 +00:00
Only check for non-finished migrating task (#19601)
* Only check for non-finished migrating task - Only check if a non-finished migrating task exists for a mirror before fetching the mirror details from the database. - Resolves #19600 - Regression: #19588 * Clarify function
This commit is contained in:
parent
9c04da37d0
commit
3114cd30b8
|
@ -181,12 +181,12 @@ func GetMigratingTask(repoID int64) (*Task, error) {
|
|||
return &task, nil
|
||||
}
|
||||
|
||||
// HasMigratingTask returns if migrating task exist for repo.
|
||||
func HasMigratingTask(repoID int64) (bool, error) {
|
||||
return db.GetEngine(db.DefaultContext).Exist(&Task{
|
||||
RepoID: repoID,
|
||||
Type: structs.TaskTypeMigrateRepo,
|
||||
})
|
||||
// HasFinishedMigratingTask returns if a finished migration task exists for the repo.
|
||||
func HasFinishedMigratingTask(repoID int64) (bool, error) {
|
||||
return db.GetEngine(db.DefaultContext).
|
||||
Where("repo_id=? AND type=? AND status=?", repoID, structs.TaskTypeMigrateRepo, structs.TaskStatusFinished).
|
||||
Table("task").
|
||||
Exist()
|
||||
}
|
||||
|
||||
// GetMigratingTaskByID returns the migrating task by repo's id
|
||||
|
|
|
@ -371,14 +371,14 @@ func repoAssignment(ctx *Context, repo *repo_model.Repository) {
|
|||
|
||||
if repo.IsMirror {
|
||||
|
||||
// Check if there's a migrating task.
|
||||
// If it does exist, don't fetch the Mirror from the database as it doesn't exist yet.
|
||||
hasTask, err := models.HasMigratingTask(repo.ID)
|
||||
// Check if the mirror has finsihed migrationg, only then we can
|
||||
// lookup the mirror informtation the database.
|
||||
finishedMigrating, err := models.HasFinishedMigratingTask(repo.ID)
|
||||
if err != nil {
|
||||
ctx.ServerError("GetMirrorByRepoID", err)
|
||||
ctx.ServerError("HasFinishedMigratingTask", err)
|
||||
return
|
||||
}
|
||||
if !hasTask {
|
||||
if finishedMigrating {
|
||||
ctx.Repo.Mirror, err = repo_model.GetMirrorByRepoID(repo.ID)
|
||||
if err != nil {
|
||||
ctx.ServerError("GetMirrorByRepoID", err)
|
||||
|
|
Loading…
Reference in a new issue