#!/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