From 6579f28b649486cd3bfc9de3f2ed442f87707daf Mon Sep 17 00:00:00 2001 From: erio Date: Sun, 19 Apr 2026 20:38:57 +0800 Subject: [PATCH] fix: delete scheduled test plans when account is deleted Accounts use soft-delete (setting deleted_at), so PostgreSQL's ON DELETE CASCADE on scheduled_test_plans.account_id never fires. Add plan deletion to the existing account deletion transaction to ensure atomicity. Closes Wei-Shaw/sub2api#1728 --- backend/internal/repository/account_repo.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/internal/repository/account_repo.go b/backend/internal/repository/account_repo.go index 24115c33..78f739ac 100644 --- a/backend/internal/repository/account_repo.go +++ b/backend/internal/repository/account_repo.go @@ -438,6 +438,9 @@ func (r *accountRepository) Delete(ctx context.Context, id int64) error { if _, err := txClient.AccountGroup.Delete().Where(dbaccountgroup.AccountIDEQ(id)).Exec(ctx); err != nil { return err } + if _, err := txClient.ExecContext(ctx, "DELETE FROM scheduled_test_plans WHERE account_id = $1", id); err != nil { + return err + } if _, err := txClient.Account.Delete().Where(dbaccount.IDEQ(id)).Exec(ctx); err != nil { return err }