/** * Bringt Rechtekatalog und Systemrollen beim Container-Start auf Stand. * * Hintergrund: seed.ts laeuft nur auf leeren Datenbanken (USER_COUNT=0). Wer * das System schon installiert hat, bekommt nachtraeglich hinzugefuegte * Rechte oder geaenderte Rollenzuordnungen sonst NICHT. * * Die Definition selbst steht in `src/config/rechte-katalog.ts`, die Logik in * `src/services/rollen-sync.service.ts`. Dieses Skript ist nur noch der * Einstiegspunkt fuer die Kommandozeile - bis 09/2026 trug es eine eigene * Kopie des Katalogs, und es war nicht die einzige. * * KEINE Stammdaten, KEINE Benutzer, KEINE Vertraege - auf laufenden * Produktionsdatenbanken sicher. */ // Ueber src/lib/prisma.js, NICHT ueber einen eigenen PrismaClient: Dort wird // DATABASE_URL aus den DB_*-Teilen zusammengesetzt, falls sie fehlt. Bei // `docker compose exec npx tsx prisma/.ts` ist genau das der // Fall - der Entrypoint exportiert sie nur in den Serverprozess, eine neue // Shell erbt sie nicht. Ein eigener Client scheitert dort mit // "Environment variable not found: DATABASE_URL". import prisma from '../src/lib/prisma.js'; import { synchronisiereRechteUndRollen } from '../src/services/rollen-sync.service.js'; synchronisiereRechteUndRollen(prisma) .catch((e) => { console.error('[rollen-sync] Fehler:', e); process.exit(1); }) .finally(async () => { await prisma.$disconnect(); });