From f358492a99531142240d68f3ef8ca44ab8b86ffc Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 25 Feb 2026 01:06:58 +0100 Subject: [PATCH] fix: tolerate missing payload_migrations table and auto-detect DB credentials in pipeline --- .gitea/workflows/deploy.yml | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 84e4ac43..fb2b73e0 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -371,17 +371,25 @@ jobs: sleep 2 done - echo "🔧 Sanitizing payload_migrations table..." - ssh root@alpha.mintel.me "docker exec $DB_CONTAINER psql -U payload -d payload -c \" - DELETE FROM payload_migrations WHERE batch = -1; - INSERT INTO payload_migrations (name, batch) - SELECT name, batch FROM (VALUES - ('20260223_195005_products_collection', 1), - ('20260223_195151_remove_sku_unique', 2), - ('20260225_003500_add_pages_collection', 3) - ) AS v(name, batch) - WHERE NOT EXISTS (SELECT 1 FROM payload_migrations pm WHERE pm.name = v.name); - \"" + echo "🔧 Sanitizing payload_migrations table (if exists)..." + REMOTE_DB_USER=$(ssh root@alpha.mintel.me "grep -h '^PAYLOAD_DB_USER=' $SITE_DIR/.env* 2>/dev/null | tail -1 | cut -d= -f2" || echo "payload") + REMOTE_DB_NAME=$(ssh root@alpha.mintel.me "grep -h '^PAYLOAD_DB_NAME=' $SITE_DIR/.env* 2>/dev/null | tail -1 | cut -d= -f2" || echo "payload") + REMOTE_DB_USER="${REMOTE_DB_USER:-payload}" + REMOTE_DB_NAME="${REMOTE_DB_NAME:-payload}" + ssh root@alpha.mintel.me "docker exec $DB_CONTAINER psql -U $REMOTE_DB_USER -d $REMOTE_DB_NAME -c \" + DO \\\$\\\$ BEGIN + DELETE FROM payload_migrations WHERE batch = -1; + INSERT INTO payload_migrations (name, batch) + SELECT name, batch FROM (VALUES + ('20260223_195005_products_collection', 1), + ('20260223_195151_remove_sku_unique', 2), + ('20260225_003500_add_pages_collection', 3) + ) AS v(name, batch) + WHERE NOT EXISTS (SELECT 1 FROM payload_migrations pm WHERE pm.name = v.name); + EXCEPTION WHEN undefined_table THEN + RAISE NOTICE 'payload_migrations table does not exist yet — skipping sanitization'; + END \\\$\\\$; + \"" || echo "⚠️ Migration sanitization skipped (table may not exist yet)" # Restart app to pick up clean migration state APP_CONTAINER="${{ needs.prepare.outputs.project_name }}-klz-app-1"