From 4d905bb4cdff19949d5bb02f6abe68438cc8f977 Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 13 May 2026 15:32:25 +0200 Subject: [PATCH] =?UTF-8?q?fix(api):=200002=5Fdecks=5Farchived=5Fat=20?= =?UTF-8?q?=E2=80=94=20schlie=C3=9Ft=20Schema-Drift?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Production-DB hatte cards.decks.archived_at nicht, obwohl 0000_baseline die Spalte im CREATE TABLE hat. Ursache: Schema-Datei wurde nach initialer DB-Provisionierung um archived_at erweitert, ohne separate ADD-COLUMN-Migration zu generieren. Resultat: cards-native DeckListView triggert GET /api/v1/decks → isNull(decks.archivedAt) → PostgresError → HTTP 500. Fix: - 0002_decks_archived_at.sql mit ALTER TABLE IF NOT EXISTS (idempotent) - _journal.json updaten - Auf Production manuell schon angewandt 2026-05-13 — diese Migration ist nur für fresh Setups + Migration-State-Konsistenz Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/db/migrations/0002_decks_archived_at.sql | 13 +++++++++++++ apps/api/src/db/migrations/meta/_journal.json | 7 +++++++ 2 files changed, 20 insertions(+) create mode 100644 apps/api/src/db/migrations/0002_decks_archived_at.sql diff --git a/apps/api/src/db/migrations/0002_decks_archived_at.sql b/apps/api/src/db/migrations/0002_decks_archived_at.sql new file mode 100644 index 0000000..cf4565f --- /dev/null +++ b/apps/api/src/db/migrations/0002_decks_archived_at.sql @@ -0,0 +1,13 @@ +-- Add `archived_at` to cards.decks. +-- +-- Hintergrund: 0000_baseline.sql hat die Spalte zwar im CREATE TABLE, +-- aber die Production-DB wurde damals noch vor dem archived_at-Add +-- aufgespielt, sodass die echte Tabelle bis 2026-05-13 keine +-- archived_at-Spalte hatte. cards-native's DeckListView triggert +-- GET /api/v1/decks, der Hono-Handler fragt `isNull(decks.archivedAt)` +-- ab → Postgres-Error "column does not exist" → HTTP 500. +-- +-- Idempotent (`IF NOT EXISTS`), damit fresh Setups (wo die Spalte +-- via Baseline schon da ist) den Schritt überspringen. + +ALTER TABLE "cards"."decks" ADD COLUMN IF NOT EXISTS "archived_at" timestamp with time zone; diff --git a/apps/api/src/db/migrations/meta/_journal.json b/apps/api/src/db/migrations/meta/_journal.json index 809c946..c0133cf 100644 --- a/apps/api/src/db/migrations/meta/_journal.json +++ b/apps/api/src/db/migrations/meta/_journal.json @@ -15,6 +15,13 @@ "when": 1747180800000, "tag": "0001_reviews_prev_snapshot", "breakpoints": true + }, + { + "idx": 2, + "version": "7", + "when": 1779075600000, + "tag": "0002_decks_archived_at", + "breakpoints": true } ] } \ No newline at end of file