diff --git a/apps/webapp/app/presenters/v3/ScheduleListPresenter.server.ts b/apps/webapp/app/presenters/v3/ScheduleListPresenter.server.ts index 2ff5ea4581..874eac9c5a 100644 --- a/apps/webapp/app/presenters/v3/ScheduleListPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/ScheduleListPresenter.server.ts @@ -163,6 +163,7 @@ export class ScheduleListPresenter extends BasePresenter { }, active: true, lastRunTriggeredAt: true, + createdAt: true, }, where: { projectId: project.id, @@ -206,6 +207,9 @@ export class ScheduleListPresenter extends BasePresenter { } : undefined, }, + orderBy: { + createdAt: "desc", + }, take: pageSize, skip: (page - 1) * pageSize, }); diff --git a/internal-packages/database/prisma/migrations/20250417135530_task_schedule_dashboard_indexes/migration.sql b/internal-packages/database/prisma/migrations/20250417135530_task_schedule_dashboard_indexes/migration.sql new file mode 100644 index 0000000000..2a58ce6d03 --- /dev/null +++ b/internal-packages/database/prisma/migrations/20250417135530_task_schedule_dashboard_indexes/migration.sql @@ -0,0 +1,5 @@ +-- CreateIndex +CREATE INDEX CONCURRENTLY IF NOT EXISTS "TaskSchedule_projectId_idx" ON "TaskSchedule" ("projectId"); + +-- CreateIndex +CREATE INDEX CONCURRENTLY IF NOT EXISTS "TaskSchedule_projectId_createdAt_idx" ON "TaskSchedule" ("projectId", "createdAt" DESC); \ No newline at end of file diff --git a/internal-packages/database/prisma/schema.prisma b/internal-packages/database/prisma/schema.prisma index e2b000406f..ef29fcec39 100644 --- a/internal-packages/database/prisma/schema.prisma +++ b/internal-packages/database/prisma/schema.prisma @@ -2933,6 +2933,9 @@ model TaskSchedule { active Boolean @default(true) @@unique([projectId, deduplicationKey]) + /// Dashboard list view + @@index([projectId]) + @@index([projectId, createdAt(sort: Desc)]) } enum ScheduleType {