35 lines
1.0 KiB
Bash
35 lines
1.0 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# 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
|
|
|
|
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
|