Fix #27: Datenbankbefehle benennen, welcher Rückfragen stellt #31

Merged
florian.wilde merged 1 commits from fix/27-db-befehle into main 2026-08-23 17:36:07 +00:00
+35 -4
View File
@@ -97,11 +97,12 @@ DATABASE_URL="postgresql://cockpit:entwicklung@localhost:5433/betreuungs_cockpit
**3. Datenbank einrichten:** **3. Datenbank einrichten:**
```bash ```bash
npx prisma migrate dev --name fundament npm run setup # Migrationen, Volltextsuche, Audit-Schutz, Beispieldaten
npm run db:sql # Volltextsuche und Audit-Schutz
npm run db:seed
``` ```
Das ist die Kurzform für `db:deploy`, `db:sql` und `db:seed` — die drei
Schritte laufen ohne Rückfrage durch.
**4. Starten:** **4. Starten:**
```bash ```bash
@@ -513,6 +514,35 @@ npm run protokoll # Bauprotokoll aus der Git-Historie
npm run version -- patch # Version anheben, Changelog vorbereiten npm run version -- patch # Version anheben, Changelog vorbereiten
``` ```
### Die Datenbankbefehle
Welcher Befehl wofür — und welcher am Terminal Rückfragen stellt. Nur
`db:migrate` ist interaktiv; alle anderen laufen in Skripten, in der CI
und im Container durch.
| Befehl | Wofür | Rückfragen? |
|---|---|---|
| `npm run setup` | Ersteinrichtung: Migrationen, SQL-Skripte, Beispieldaten | nein |
| `npm run db:migration -- <name>` | Schemaänderung während der Entwicklung — erzeugt die Migration und nimmt die `DROP INDEX`-Zeilen zur Volltextsuche heraus | nein |
| `npm run db:deploy` | Vorhandene Migrationen anwenden (Server, CI, Container) | nein |
| `npm run db:migrate` | `prisma migrate dev` — fragt nach dem Namen und bietet an, die Datenbank zurückzusetzen | **ja** |
| `npm run db:sql` | Volltextsuche und Audit-Schutz; läuft nicht mit den Migrationen mit | nein |
| `npm run db:pruefen` | Nachsehen, ob die Trigramm-Indizes noch stehen | nein |
| `npm run db:seed` | Beispieldaten einspielen | nein |
Der übliche Weg für eine Schemaänderung:
```bash
# Schema in prisma/schema.prisma ändern, dann
npm run db:migration -- ansprechpartner # erzeugen und lesen
npm run db:deploy # anwenden
npm run db:pruefen # Indizes nachsehen
```
`db:migrate` braucht man dafür nicht mehr. Es bleibt für die Fälle, in
denen man wirklich den interaktiven Prisma-Ablauf will — etwa um eine
verkorkste Entwicklungsdatenbank zurückzusetzen.
Konventionen — verbindlich für alle Beiträge: Konventionen — verbindlich für alle Beiträge:
[`docs/KONVENTIONEN.md`](docs/KONVENTIONEN.md). [`docs/KONVENTIONEN.md`](docs/KONVENTIONEN.md).
Schnittstellen zwischen den Modulen: Schnittstellen zwischen den Modulen:
@@ -545,7 +575,8 @@ Produktion.
über den Abschnitt `environment:`. über den Abschnitt `environment:`.
- Beim ersten Start eines Containers laufen die Migrationen automatisch - Beim ersten Start eines Containers laufen die Migrationen automatisch
mit. Die beiden SQL-Skripte (Volltextsuche, Audit-Schutz) sind mit. Die beiden SQL-Skripte (Volltextsuche, Audit-Schutz) sind
**einmalig von Hand** anzustoßen, siehe oben. **einmalig von Hand** anzustoßen, siehe oben. Beim Aktualisieren
erledigt das `scripts/update.sh` mit — beide Skripte sind idempotent.
### Technische Grundlage ### Technische Grundlage