From 45f72a549f2e5beedad6c36ff08c55ec1aa0b904 Mon Sep 17 00:00:00 2001 From: WithoutPants <53250216+WithoutPants@users.noreply.github.com> Date: Tue, 13 Aug 2019 09:03:16 +1000 Subject: [PATCH] Delete scene/marker tag refs when deleting tags --- pkg/models/querybuilder_tag.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/models/querybuilder_tag.go b/pkg/models/querybuilder_tag.go index e6036b751..e5ed270c6 100644 --- a/pkg/models/querybuilder_tag.go +++ b/pkg/models/querybuilder_tag.go @@ -52,6 +52,19 @@ func (qb *TagQueryBuilder) Update(updatedTag Tag, tx *sqlx.Tx) (*Tag, error) { } func (qb *TagQueryBuilder) Destroy(id string, tx *sqlx.Tx) error { + // delete tag from scenes and markers first + _, err := tx.Exec("DELETE FROM scenes_tags WHERE tag_id = ?", id) + if err != nil { + return err + } + + _, err = tx.Exec("DELETE FROM scene_markers_tags WHERE tag_id = ?", id) + if err != nil { + return err + } + + // does not unset primary_tag_id in scene_markers because it is not nullable + return executeDeleteQuery("tags", id, tx) }