1.3 KiB
1.3 KiB
| id | status | phase | priority | labels | branch | assignee | started | pr | merged | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DIS-108 | backlog | 1 | p1 |
|
phase-1/db-schema-ssot | null | null | null | null |
DIS-108: DB-Schema SSOT → src/db/schema.sql
Ziel
Das SQLite-Schema ist in einer einzigen schema.sql-Datei definiert (Single Source of Truth).
database.ts liest und führt die Datei aus statt SQL inline zu haben.
Kontext
→ docs/development-plan.md §2 (DB-Architektur), Phase 1 Task 8.
Scope
- In:
src/db/schema.sqlmit allenCREATE TABLE-Statements (inkl.conversations-Index) ·database.tsliest Schema viafs.readFileSyncund wendet es überdb.run()auf die SQLite-Instanz an · Bestehende Inline-SQL entfernen - Out: DB-Migrations-System (kommt mit Phase 2
session_id-Spalte als erstes Delta)
Definition of Done
schema.sqlenthält alle Tabellen und Indizesdatabase.tshat kein Inline-DDL mehr- Integration-Test
tests/integration/db-init.test.tsmit tmp-SQLite verifiziert: Tabellen existieren, Indizes greifen, zweites Ausführen ist idempotent npm run build && npm testgrün
Dateien (erwartet)
src/db/schema.sqlsrc/db/database.tstests/integration/db-init.test.ts
Abhängigkeiten
Blockiert durch: DIS-101.
Spec
→ docs/backlog.md #DIS-108