Backport #28487 by @earl-warren - When a repository is orphaned and has objects stored in any of the storages such as repository avatar or attachments the delete function would error, because the storage module wasn't initalized. - Add code to initialize the storage module. Refs: https://codeberg.org/forgejo/forgejo/pulls/1954 Co-authored-by: Earl Warren <109468362+earl-warren@users.noreply.github.com> Co-authored-by: Gusted <postmaster@gusted.xyz>
This commit is contained in:
parent
2c2e00899d
commit
8ee1ed877b
1 changed files with 5 additions and 0 deletions
|
@ -9,6 +9,7 @@ import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
"code.gitea.io/gitea/modules/storage"
|
||||||
repo_service "code.gitea.io/gitea/services/repository"
|
repo_service "code.gitea.io/gitea/services/repository"
|
||||||
|
|
||||||
"xorm.io/builder"
|
"xorm.io/builder"
|
||||||
|
@ -31,6 +32,10 @@ func countOrphanedRepos(ctx context.Context) (int64, error) {
|
||||||
|
|
||||||
// deleteOrphanedRepos delete repository where user of owner_id do not exist
|
// deleteOrphanedRepos delete repository where user of owner_id do not exist
|
||||||
func deleteOrphanedRepos(ctx context.Context) (int64, error) {
|
func deleteOrphanedRepos(ctx context.Context) (int64, error) {
|
||||||
|
if err := storage.Init(); err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
batchSize := db.MaxBatchInsertSize("repository")
|
batchSize := db.MaxBatchInsertSize("repository")
|
||||||
e := db.GetEngine(ctx)
|
e := db.GetEngine(ctx)
|
||||||
var deleted int64
|
var deleted int64
|
||||||
|
|
Loading…
Reference in a new issue