diff --git a/README.md b/README.md index d01c018..a3187ea 100644 --- a/README.md +++ b/README.md @@ -97,11 +97,12 @@ DATABASE_URL="postgresql://cockpit:entwicklung@localhost:5433/betreuungs_cockpit **3. Datenbank einrichten:** ```bash -npx prisma migrate dev --name fundament -npm run db:sql # Volltextsuche und Audit-Schutz -npm run db:seed +npm run setup # Migrationen, Volltextsuche, Audit-Schutz, Beispieldaten ``` +Das ist die Kurzform für `db:deploy`, `db:sql` und `db:seed` — die drei +Schritte laufen ohne Rückfrage durch. + **4. Starten:** ```bash @@ -513,6 +514,35 @@ npm run protokoll # Bauprotokoll aus der Git-Historie 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 -- ` | 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: [`docs/KONVENTIONEN.md`](docs/KONVENTIONEN.md). Schnittstellen zwischen den Modulen: @@ -545,7 +575,8 @@ Produktion. über den Abschnitt `environment:`. - Beim ersten Start eines Containers laufen die Migrationen automatisch 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