From 07263a89fe7b3bd8b0d7d380ff286389dbb7966c Mon Sep 17 00:00:00 2001 From: "groombook-engineer[bot]" <269742240+groombook-engineer[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 13:21:31 +0000 Subject: [PATCH] fix(db): truncate downstream tables before services dedup to avoid FK violation (#197) TRUNCATE appointments, invoices, invoice_line_items, invoice_tip_splits, and grooming_visit_logs CASCADE before the services dedup DELETE to prevent FK violations from appointments created by previous seed runs. Fixes: GRO-365 Co-authored-by: groombook-engineer[bot] <3141748+groombook-engineer[bot]@users.noreply.github.com> Co-authored-by: Paperclip --- packages/db/src/seed.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/db/src/seed.ts b/packages/db/src/seed.ts index ece7071..3c625cd 100644 --- a/packages/db/src/seed.ts +++ b/packages/db/src/seed.ts @@ -423,6 +423,9 @@ async function seed() { } console.log(`✓ Created ${allStaff.length} staff (1 manager, 1 receptionist, 3 groomers, 3 bathers)`); + // Truncate downstream tables before services dedup to avoid FK violation + await db.execute(sql`TRUNCATE appointments, invoices, invoice_line_items, invoice_tip_splits, grooming_visit_logs CASCADE`); + // ── Services ── // Deduplicate existing services (keep lowest id per name) before inserting. await db.execute(sql`