#!/usr/bin/env bash # Atualiza o B2BCall: puxa código novo, aplica migrations pendentes, rebuilda # as imagens que mudaram e recria os containers necessários. set -euo pipefail cd "$(dirname "$0")/.." if [ ! -f .env ]; then echo "Erro: .env não encontrado em $(pwd)." >&2 exit 1 fi set -a; source .env; set +a if [ -d .git ]; then echo "==> git status antes de atualizar:" git status --short if [ -n "$(git status --porcelain)" ]; then echo "AVISO: há alterações locais não commitadas. Prosseguindo mesmo assim (elas não são de código servido pelos containers, que usam o que já está em disco)." fi echo "==> git pull..." git pull --ff-only fi echo "==> Instalando dependências (pnpm install)..." pnpm install --frozen-lockfile echo "==> Aplicando migrations pendentes do Prisma..." ( cd packages/database export DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@127.0.0.1:${POSTGRES_PORT:-5432}/${POSTGRES_DB}?schema=public" pnpm exec prisma migrate deploy ) echo "==> Rebuildando imagens Docker..." docker compose build echo "==> Recriando containers com as novas imagens..." docker compose up -d echo "==> Aguardando serviços ficarem saudáveis..." sleep 10 bash scripts/healthcheck.sh