From ef74da475b7cd462b654ba0a3abf7fdf3fc367da Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 7 Mar 2026 20:33:37 -0300 Subject: [PATCH] fix: add wait-on-db logic to production start script to resolve Dokploy network delays --- frontend/start.sh | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/frontend/start.sh b/frontend/start.sh index 233d928..5dbc9dd 100644 --- a/frontend/start.sh +++ b/frontend/start.sh @@ -1,11 +1,34 @@ #!/bin/sh set -e -echo "🔄 Executando migrations do Prisma..." -./node_modules/.bin/prisma db push --accept-data-loss +# Função para esperar o banco de dados ficar pronto +wait_for_db() { + echo "⏳ Aguardando banco de dados em $DATABASE_URL..." + max_retries=30 + count=0 + while ! ./node_modules/.bin/prisma db push --dry-run > /dev/null 2>&1; do + count=$((count + 1)) + if [ $count -gt $max_retries ]; then + echo "❌ Erro: Banco de dados não responde após $max_retries tentativas." + exit 1 + fi + echo "🔄 Tentativa $count/$max_retries: Banco ainda não disponível, aguardando 2s..." + sleep 2 + done + echo "✅ Banco de dados detectado!" +} -echo "🌱 Executando seed..." -./node_modules/.bin/prisma db seed || echo "⚠️ Seed falhou ou já foi executado" +# Só executa se DATABASE_URL estiver definida +if [ -n "$DATABASE_URL" ]; then + wait_for_db + echo "🔄 Sincronizando tabelas do Prisma (db push)..." + ./node_modules/.bin/prisma db push --accept-data-loss + + echo "🌱 Executando seed..." + ./node_modules/.bin/prisma db seed || echo "⚠️ Seed falhou ou já foi executado" +else + echo "⚠️ DATABASE_URL não configurada, pulando migrations." +fi echo "🚀 Iniciando aplicação..." exec node server.js