From 332e27df14efd46879ddbd9e106a58129e027ebf Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 20 May 2026 16:07:22 +0200 Subject: [PATCH] fix(api): 0004-Migration referenziert wordeck-Schema (war: cards) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Text-Only-Cutoff-Migration aus dem Rebrand-Lift schrieb gegen \"cards\".\"cards\" — historischer Pre-Rebrand-Schema-Name. Auf prod heißt das Schema seit Phase 0 `wordeck`. Drizzle-Migrator crashte mit `relation \"cards.cards\" does not exist`. Alle 6 cards.X-References auf wordeck.X umgeschrieben. Migration bleibt idempotent (IF EXISTS / DO-BLOCK), Re-Run harmlos. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../api/src/db/migrations/0004_wordeck_text_only.sql | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/api/src/db/migrations/0004_wordeck_text_only.sql b/apps/api/src/db/migrations/0004_wordeck_text_only.sql index d58ea3c..9ef2bd3 100644 --- a/apps/api/src/db/migrations/0004_wordeck_text_only.sql +++ b/apps/api/src/db/migrations/0004_wordeck_text_only.sql @@ -24,7 +24,7 @@ -- 1. Verbleibende Karten der gestrichenen Typen löschen -- (sollte nach Audit 0 betreffen). -DELETE FROM "cards"."cards" WHERE "type" IN ('image-occlusion', 'audio'); +DELETE FROM "wordeck"."cards" WHERE "type" IN ('image-occlusion', 'audio'); -- 2. CHECK-Constraint für erlaubte CardTypes. DO $$ @@ -32,22 +32,22 @@ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'cards_type_check' ) THEN - ALTER TABLE "cards"."cards" + ALTER TABLE "wordeck"."cards" ADD CONSTRAINT "cards_type_check" CHECK ("type" IN ('basic', 'basic-reverse', 'cloze', 'type-in', 'multiple-choice')); END IF; END$$; -- 3. media_refs-Spalte aus cards droppen (war nie produktiv genutzt). -ALTER TABLE "cards"."cards" DROP COLUMN IF EXISTS "media_refs"; +ALTER TABLE "wordeck"."cards" DROP COLUMN IF EXISTS "media_refs"; -- 4. media_files- und media_refs-Tabellen droppen. -DROP TABLE IF EXISTS "cards"."media_files"; -DROP TABLE IF EXISTS "cards"."media_refs" CASCADE; +DROP TABLE IF EXISTS "wordeck"."media_files"; +DROP TABLE IF EXISTS "wordeck"."media_refs" CASCADE; -- 5. Optional: Wenn fields ein image_ref-Key enthält, säubern. -- (Image-Occlusion-Karten sind oben schon gelöscht — das ist ein -- Defense-in-Depth-Schritt für falsch annotierte basic-Karten.) -UPDATE "cards"."cards" +UPDATE "wordeck"."cards" SET "fields" = "fields" - 'image_ref' - 'mask_regions' WHERE "fields" ?| array['image_ref', 'mask_regions'];