diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 794074524cdd4..bb72b7f5d3c0f 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -190,6 +190,8 @@ var migrations = []Migration{ NewMigration("add repository code language statistics", addLanguageStats), // v128 -> v129 NewMigration("fix merge base for pull requests", fixMergeBase), + // v129 -> v130 + NewMigration("remove dependencies from deleted repositories", purgeUnusedDependencies), } // Migrate database to current version diff --git a/models/migrations/v129.go b/models/migrations/v129.go new file mode 100644 index 0000000000000..26f8ed34325e6 --- /dev/null +++ b/models/migrations/v129.go @@ -0,0 +1,18 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package migrations + +import ( + "xorm.io/xorm" +) + +func purgeUnusedDependencies(x *xorm.Engine) error { + + if _, err := x.Exec("DELETE FROM issue_dependency WHERE issue_id NOT IN (SELECT id FROM issue)"); err != nil { + return err + } + _, err := x.Exec("DELETE FROM issue_dependency WHERE dependency_id NOT IN (SELECT id FROM issue)") + return err +}