typescript - Använda Prisma och transaktioner?
Jag försöker få Prisma att rulla tillbaka min transaktion. Jag använder följande kod:
await globals.prisma.$transaction(async () => {
try {
return await o.SaveDetails(taintedResponse);
} catch (e) {
throw new Error("No, not good");
}
});
Och jag gör min sparning i SaveDetails-metoden, men på raden efter gör jag detta:
throw new Error("Dingity!");
I mitt sinne skulle det göra att Prisma kallar rollback-funktionen för transaktionen. Men nej. Allt sparas i databasen.
Jag har också försökt att anropa rå SQL och när jag gör det kan jag använda:
await globals.prisma.$executeRawUnsafe("begin");
await globals.prisma.$executeRawUnsafe("... just random update");
//await globals.prisma.$executeRawUnsafe("rollback");
await globals.prisma.$executeRawUnsafe("commit");
Och uppdateringen antingen committar eller rullar tillbaka beroende på de sista två raderna. Men när jag använder samma "begin" och "rollback" men med Prisma-uttryck emellan, så fastnar de alltid oavsett om jag kallar på rollback efteråt.
Vad gör jag fel, eller vad missar jag?
Hälsningar.