From c707a70065ba5813850c6429bdb0b3069c096c05 Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Wed, 13 May 2026 19:11:50 +0100 Subject: [PATCH] feat(migrations): remove push:true, run migrations automatically on deploy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove push:true from postgres adapter (unreliable for new columns) - Remove profile:tools from migrate service so it runs on every deploy - Add restart:no to migrate service (one-shot runner) - App now depends on migrate with service_completed_successfully condition: postgres healthy → migrate applies pending → app starts Workflow for future schema changes: 1. Add field to collection/global TypeScript 2. ssh server: docker-compose run --rm migrate migrate:create --name 3. git pull the generated .ts migration file 4. commit + push → next deploy applies it automatically Co-Authored-By: Claude Sonnet 4.6 --- docker-compose.prod.yml | 5 +++-- payload.config.ts | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index e7a7b7b..944a637 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -30,8 +30,7 @@ services: - ./migrations:/app/migrations networks: - internal - profiles: - - tools + restart: "no" app: build: . @@ -40,6 +39,8 @@ services: depends_on: postgres: condition: service_healthy + migrate: + condition: service_completed_successfully volumes: - media_uploads:/app/media restart: unless-stopped diff --git a/payload.config.ts b/payload.config.ts index 304eed4..5379811 100644 --- a/payload.config.ts +++ b/payload.config.ts @@ -48,7 +48,6 @@ export default buildConfig({ pool: { connectionString: process.env['DATABASE_URL']!, }, - push: true, migrationDir: path.resolve(dirname, 'migrations'), }),