fix: add wait-on-db logic to production start script to resolve Dokploy network delays

This commit is contained in:
Erik
2026-03-07 20:33:37 -03:00
parent 385d5e9cdd
commit ef74da475b

View File

@@ -1,11 +1,34 @@
#!/bin/sh #!/bin/sh
set -e set -e
echo "🔄 Executando migrations do Prisma..." # 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!"
}
# 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 ./node_modules/.bin/prisma db push --accept-data-loss
echo "🌱 Executando seed..." echo "🌱 Executando seed..."
./node_modules/.bin/prisma db seed || echo "⚠️ Seed falhou ou já foi executado" ./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..." echo "🚀 Iniciando aplicação..."
exec node server.js exec node server.js