diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 1300065ab..d35203093 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -186,6 +186,8 @@ var migrations = []Migration{ NewMigration("add u2f", addU2FReg), // v66 -> v67 NewMigration("add login source id column for public_key table", addLoginSourceIDToPublicKeyTable), + // v67 -> v68 + NewMigration("clean unlinked webhook and hook_task", cleanUnlinkedWebhookAndHookTasks), } // Migrate database to current version diff --git a/models/migrations/v67.go b/models/migrations/v67.go new file mode 100644 index 000000000..c7c0914f0 --- /dev/null +++ b/models/migrations/v67.go @@ -0,0 +1,13 @@ +// Copyright 2017 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 ( + "github.com/go-xorm/xorm" +) + +func cleanUnlinkedWebhookAndHookTasks(x *xorm.Engine) error { + _, err := x.Exec(`DELETE FROM webhook WHERE (SELECT COUNT(*) FROM repository WHERE id = webhook.repo_id)=0;DELETE FROM hook_task WHERE (SELECT COUNT(*) FROM repository WHERE id = hook_task.repo_id)=0;`) + return err +}