I've been using Prisma on my latest project Karaoke Tools and as crazy as it may seem, I did not find any easy way (like a plugin) to handle soft delete behaviour.
So I had to tweak it myself manually and ending up in a case where
-
deletedAt
can be null -
deletedAt
can NOT exist
This is because I'm using mongo and no default value for deletedAt
.
This filtering in Prisma is not handled by default (like deletedAt: null
so I had to do it with an OR
request.
const items = await prisma.event.findMany({
...
where: filters: {
OR: [{ deletedAt: { isSet: false } }, { deletedAt: null }],
...
});
As it took me almost an hour to find this (chatGPT not being helpful), I wrote this article.
Cheers
Top comments (5)
I need help convert command sql to prisma:
SELECT acctuniqueid,
username,
callingstationid,
framedipaddress
FROM tiger.RadiusAcct
WHERE username = ${element.login}
AND acctstoptime IS NULL
AND NOT EXISTS (
SELECT 1
FROM tiger.RadiusAcct subquery
WHERE subquery.username = ${element.login}
AND subquery.acctstoptime IS NOT NULL
AND subquery.radacctid > tiger.RadiusAcct.radacctid
)
ORDER BY radacctid DESC
LIMIT 1;
I spent two days trying to solve this problem—documentation, AI, even prayers to the gods—nothing worked. Your article was super helpful and gave me the direction I needed to solve it! Thank you!
Concise and to the point. Thank you very much. Chat GPT was trying to convince me that prisma doesn't support it xD
Thank you, the tears have already fallen from my face, thannnnkssssssss!!!!!!!
I just lost a few hours to this myself I wish I found this sooner, much appreciated!