fix: add wait-on-db logic to production start script to resolve Dokploy network delays
This commit is contained in:
@@ -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
|
||||||
./node_modules/.bin/prisma db push --accept-data-loss
|
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..."
|
# Só executa se DATABASE_URL estiver definida
|
||||||
./node_modules/.bin/prisma db seed || echo "⚠️ Seed falhou ou já foi executado"
|
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..."
|
echo "🚀 Iniciando aplicação..."
|
||||||
exec node server.js
|
exec node server.js
|
||||||
|
|||||||
Reference in New Issue
Block a user