From 110b11bef80b5b7ba60e7b3af14b072068a3ba1d Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Sun, 23 Aug 2026 19:35:20 +0200 Subject: [PATCH] Datenbankbefehle benennen, welcher Rueckfragen stellt "npm run db:migrate" ist "prisma migrate dev" und damit interaktiv: Es fragt nach einem Namen und bietet an, die Datenbank zurueckzusetzen. In einem Skript, in der CI oder aus einem Agenten heraus bleibt es haengen. Aus dem Namen ging das nicht hervor, also lief man einmal hinein. - Neuer Abschnitt in der README mit allen sieben Datenbankbefehlen, wofuer sie da sind und welcher Rueckfragen stellt. Es ist genau einer. - Der uebliche Weg fuer eine Schemaaenderung steht als Dreizeiler daneben - ueber den Wrapper aus #24, nicht ueber migrate dev. - Die Ersteinrichtung in der README rief "npx prisma migrate dev --name fundament" auf, obwohl es dafuer "npm run setup" gibt. Das war der Ausgangspunkt der Verwirrung; jetzt steht dort der eine Befehl. - Der Hinweis unter "Betriebswissen", die SQL-Skripte seien von Hand anzustossen, galt nur fuer die Ersteinrichtung. Beim Aktualisieren erledigt update.sh das mit - jetzt steht das dabei. "db:migrate" bleibt bestehen. Der interaktive Ablauf hat seinen Platz, etwa um eine verkorkste Entwicklungsdatenbank zurueckzusetzen; er ist nur nicht mehr der Standardweg. Refs #27 --- README.md | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) 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