diff --git a/packages/backend/server/src/data/migrations/1751966744168-correct-session-update-time.ts b/packages/backend/server/src/data/migrations/1751966744168-correct-session-update-time.ts index 1ea17170b..f3bd580b9 100644 --- a/packages/backend/server/src/data/migrations/1751966744168-correct-session-update-time.ts +++ b/packages/backend/server/src/data/migrations/1751966744168-correct-session-update-time.ts @@ -1,4 +1,5 @@ import { PrismaClient } from '@prisma/client'; +import { chunk } from 'lodash-es'; type SessionTime = { sessionId: string; @@ -17,16 +18,19 @@ export class CorrectSessionUpdateTime1751966744168 { }, }); - await Promise.all( - sessionTime - .filter((s): s is SessionTime => !!s._max.createdAt) - .map(s => - db.aiSession.update({ - where: { id: s.sessionId }, - data: { updatedAt: s._max.createdAt }, - }) - ) - ); + for (const s of chunk(sessionTime, 100)) { + const sessions = s.filter((s): s is SessionTime => !!s._max.createdAt); + await db.$transaction(async tx => { + await Promise.all( + sessions.map(s => + tx.aiSession.update({ + where: { id: s.sessionId }, + data: { updatedAt: s._max.createdAt }, + }) + ) + ); + }); + } } // revert the migration