diff options
author | zeripath <art27@cantab.net> | 2021-06-16 23:02:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-16 18:02:24 -0400 |
commit | 6d69df28047bf7fd3e307391b484a93432615b90 (patch) | |
tree | 8a24ce0727f86625c4f469b6744f6f3f2fa27c86 /modules/task | |
parent | 047c39e91bb39d4f31278d8c4082187894ea8263 (diff) | |
download | gitea-6d69df28047bf7fd3e307391b484a93432615b90.tar.gz gitea-6d69df28047bf7fd3e307391b484a93432615b90.zip |
Add Status Updates whilst Gitea migrations are occurring (#15076)
* Add migrating message
Signed-off-by: Andrew Thornton <art27@cantab.net>
* simplify messenger
Signed-off-by: Andrew Thornton <art27@cantab.net>
* make messenger an interface
Signed-off-by: Andrew Thornton <art27@cantab.net>
* rename
Signed-off-by: Andrew Thornton <art27@cantab.net>
* prepare for merge
Signed-off-by: Andrew Thornton <art27@cantab.net>
* as per tech
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'modules/task')
-rw-r--r-- | modules/task/migrate.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/modules/task/migrate.go b/modules/task/migrate.go index fe9b984d44..1d190faf87 100644 --- a/modules/task/migrate.go +++ b/modules/task/migrate.go @@ -20,6 +20,7 @@ import ( "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/modules/util" + jsoniter "github.com/json-iterator/go" ) func handleCreateError(owner *models.User, err error) error { @@ -56,7 +57,7 @@ func runMigrateTask(t *models.Task) (err error) { t.EndTime = timeutil.TimeStampNow() t.Status = structs.TaskStatusFailed - t.Errors = err.Error() + t.Message = err.Error() t.RepoID = 0 if err := t.UpdateCols("status", "errors", "repo_id", "end_time"); err != nil { log.Error("Task UpdateCols failed: %v", err) @@ -106,7 +107,16 @@ func runMigrateTask(t *models.Task) (err error) { return } - repo, err = migrations.MigrateRepository(ctx, t.Doer, t.Owner.Name, *opts) + repo, err = migrations.MigrateRepository(ctx, t.Doer, t.Owner.Name, *opts, func(format string, args ...interface{}) { + message := models.TranslatableMessage{ + Format: format, + Args: args, + } + json := jsoniter.ConfigCompatibleWithStandardLibrary + bs, _ := json.Marshal(message) + t.Message = string(bs) + _ = t.UpdateCols("message") + }) if err == nil { log.Trace("Repository migrated [%d]: %s/%s", repo.ID, t.Owner.Name, repo.Name) return |