From bb4d6b244ca5062e12d095e6fa3c683c0c17965e Mon Sep 17 00:00:00 2001 From: Dotta Date: Fri, 30 Oct 2026 21:09:11 -0500 Subject: [PATCH] Apply predecessor migrations before external recovery qualification Co-Authored-By: Paperclip --- server/src/__tests__/live-recovery-work.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/__tests__/live-recovery-work.test.ts b/server/src/__tests__/live-recovery-work.test.ts index 0d84fc546d8..70abd4a0043 100644 --- a/server/src/__tests__/live-recovery-work.test.ts +++ b/server/src/__tests__/live-recovery-work.test.ts @@ -6,7 +6,7 @@ import { setImmediate as immediate, setTimeout as realDelay } from "node:timers/ import { and, eq, sql } from "drizzle-orm"; import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { agents, authUsers, companies, companyMemberships, createDb, closeLivenessDb, closeCheckpointDb, - heartbeatRuns, heartbeatRunEvents, nativeRunFinalizations, environmentLeases, issueThreadInteractions, + heartbeatRuns, heartbeatRunEvents, nativeRunFinalizations, environmentLeases, issueThreadInteractions, applyPendingMigrations, issueRecoveryActions, issues, activityLog, agentWakeupRequests } from "@paperclipai/db"; import { resolveExternalTestDatabaseUrl } from "./helpers/external-test-database.js"; import { startEmbeddedPostgresTestDatabase } from "./helpers/embedded-postgres.js"; @@ -44,6 +44,7 @@ describe("residual recovery production matrix", () => { beforeAll(async () => { const external = resolveExternalTestDatabaseUrl("PAPERCLIP_LIVE_RECOVERY_TEST_DATABASE_URL"); if (!external) temporary = await startEmbeddedPostgresTestDatabase("live-recovery-"); + else await applyPendingMigrations(external); db = createDb(external ?? temporary!.connectionString, { maxConnections: 6, idleTimeoutSeconds: 0, maxLifetimeSeconds: 0 }); await Promise.all(Array.from({ length: 6 }, () => db.execute(sql`select pg_sleep(0.01)`))); });