diff --git a/packages/backend/server/migrations/20250625070609_ai_session_updated_at/migration.sql b/packages/backend/server/migrations/20250625070609_ai_session_updated_at/migration.sql index 3fac9cd02..7595483b7 100644 --- a/packages/backend/server/migrations/20250625070609_ai_session_updated_at/migration.sql +++ b/packages/backend/server/migrations/20250625070609_ai_session_updated_at/migration.sql @@ -1,5 +1,9 @@ -- AlterTable -ALTER TABLE "ai_sessions_metadata" ADD COLUMN "updated_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP; +ALTER TABLE ai_sessions_metadata ADD COLUMN updated_at TIMESTAMPTZ(3); + +UPDATE ai_sessions_metadata SET updated_at = created_at; + +ALTER TABLE ai_sessions_metadata ALTER COLUMN updated_at SET NOT NULL, ALTER COLUMN updated_at SET DEFAULT CURRENT_TIMESTAMP; -- DropIndex DROP INDEX IF EXISTS "ai_session_unique_doc_session_idx"; \ No newline at end of file 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 new file mode 100644 index 000000000..1ea17170b --- /dev/null +++ b/packages/backend/server/src/data/migrations/1751966744168-correct-session-update-time.ts @@ -0,0 +1,34 @@ +import { PrismaClient } from '@prisma/client'; + +type SessionTime = { + sessionId: string; + _max: { + createdAt: Date; + }; +}; + +export class CorrectSessionUpdateTime1751966744168 { + // do the migration + static async up(db: PrismaClient) { + const sessionTime = await db.aiSessionMessage.groupBy({ + by: ['sessionId'], + _max: { + createdAt: true, + }, + }); + + 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 }, + }) + ) + ); + } + + // revert the migration + static async down(_db: PrismaClient) {} +} diff --git a/packages/backend/server/src/data/migrations/index.ts b/packages/backend/server/src/data/migrations/index.ts index adf0c8529..314c09663 100644 --- a/packages/backend/server/src/data/migrations/index.ts +++ b/packages/backend/server/src/data/migrations/index.ts @@ -6,3 +6,4 @@ export * from './1732861452428-migrate-invite-status'; export * from './1733125339942-universal-subscription'; export * from './1738590347632-feature-redundant'; export * from './1745211351719-create-indexer-tables'; +export * from './1751966744168-correct-session-update-time';