import { prisma } from "@/lib/db"; /** * Leert alle Tabellen der Testdatenbank. * * Das Protokoll laesst sich nur leeren, weil die Sitzung `sshkv.test_modus` setzt – der * Trigger verweigert TRUNCATE sonst (#005). Die Einstellung gilt nur fuer diese Transaktion. */ export async function datenbankLeeren(): Promise { const tabellen = await prisma.$queryRaw<{ tablename: string }[]>` SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tablename <> '_prisma_migrations'`; if (tabellen.length === 0) return; const liste = tabellen.map((t) => `"${t.tablename}"`).join(", "); await prisma.$transaction([ prisma.$executeRawUnsafe(`SET LOCAL sshkv.test_modus = 'ja'`), prisma.$executeRawUnsafe(`TRUNCATE ${liste} RESTART IDENTITY CASCADE`), ]); }