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.