From ae452d024e592545338a720724a032f174902e80 Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Thu, 5 Mar 2020 16:54:50 +0100 Subject: [PATCH] Migration for deleting orphaned dependencies (#10617) Co-authored-by: Lunny Xiao --- models/migrations/migrations.go | 2 ++ models/migrations/v129.go | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 models/migrations/v129.go diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 794074524..bb72b7f5d 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 000000000..26f8ed343 --- /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 +}