From 61769e355bf58f8d72550f44783452db493dca99 Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 4 Sep 2026 12:34:49 +0200 Subject: [PATCH] fix(ci): draai DB-migraties in deploy voor het vervangen van de container MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zonder dit loopt nieuwe code tegen een oud schema aan zodra een push migraties bevat. Idempotent (toegepaste migraties worden overgeslagen), draait op de host met de productie-.env, vóór de container-replace. --- .gitea/workflows/ci.yaml | 10 ++++++++++ src/lib/deploy-workflow-contract.test.ts | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index dae5a74f..034251a2 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -84,6 +84,16 @@ jobs: --cache-from epicnext-cms:latest \ -t epicnext-cms:latest . + - name: Run migrations + run: | + # Draai DB-migraties van deze commit op de host (de slimme + # runtime-image heeft geen source/tsx, zie docker-compose.yml). + # Idempotent: al toegepaste migraties worden overgeslagen. + # Gebruikt .env uit de eerdere stap (productie-DB). Vóór het + # vervangen van de container, zodat het schema klaarstaat. + pnpm install --frozen-lockfile + pnpm db:migrate + - name: Deploy container shell: bash run: | diff --git a/src/lib/deploy-workflow-contract.test.ts b/src/lib/deploy-workflow-contract.test.ts index 73cce9b9..59583c6c 100644 --- a/src/lib/deploy-workflow-contract.test.ts +++ b/src/lib/deploy-workflow-contract.test.ts @@ -62,6 +62,13 @@ describe("deploy job", () => { expect(deployJob).toContain("docker compose"); }); + it("runs database migrations before replacing the container", () => { + expect(deployJob).toContain("pnpm db:migrate"); + expect(deployJob.indexOf("pnpm db:migrate")).toBeLessThan( + deployJob.indexOf("docker stop epicnext-cms-app"), + ); + }); + it("runs health check", () => { expect(deployJob).toContain("/api/health"); expect(deployJob).toContain('"database":true');