PostgreSQL
PostgreSQL ist die zentrale persistente Datenbank des Projekts. Prisma verwaltet Schema und Migrationen.
Lokaler Zugriff
PSQL im Datenbank-Container:
docker compose -f docker-compose.yml -f docker-compose.local.yml exec postgres sh -lc 'psql -U "$POSTGRES_USER" -d "$POSTGRES_DB"'
Prisma-Status im Backend-Container:
docker compose -f docker-compose.yml -f docker-compose.local.yml exec backend npx prisma migrate status
Prisma Studio
Lokal:
./scripts/local/prisma-studio.sh
Auf dem Server:
./scripts/server/prisma-studio.sh
Prisma Studio wird nicht dauerhaft über den Default-Stack veröffentlicht. Die Scripts starten es bei Bedarf und binden den Port nur für diese Session an 127.0.0.1.
Auf Servern ist Prisma Studio für SSH-Tunnel gedacht, nicht für öffentlichen Zugriff:
ssh -L 5555:127.0.0.1:5555 user@dein-server
Danach lokal im Browser:
http://localhost:5555
Migrationshinweise
Bei der Einführung der Trade-Bewertungen ändert User.tradeReputation von Int auf Float beziehungsweise PostgreSQL double precision.
Bei der Einführung der Top-Trader-Gebührenbelohnungen werden TopTraderReward sowie Fee-Waiver-Felder auf Trade ergänzt. Bestehende Trades behalten ihre alte fee; Rewards werden nur für neue Abschlüsse nach der Migration angewendet.
Die zugehörige Migration setzt bestehende tradeReputation-Werte auf 0, weil alte Reputationspunkte nicht als Sterne-Durchschnitt weiterverwendet werden sollen.
Wenn Prisma Studio lokal noch kein TradeRating zeigt oder User.tradeReputation weiterhin integer ist, obwohl prisma migrate status up to date meldet, ist die lokale _prisma_migrations-Historie vermutlich nicht im Gleichlauf mit dem echten Schema. Dann zuerst im laufenden Postgres-Container prüfen, ob Tabelle und Spaltentyp wirklich vorhanden sind, bevor weitere Migrationen erzeugt werden.