Files
mercadodevida/project/scripts/start-dev.sh
2026-08-17 22:23:10 +02:00

59 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# start-dev.sh — levanta infraestructura + migraciones + servidor dev
# Uso: ./scripts/start-dev.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
cd "$PROJECT_DIR"
# ── 1. Verificar Docker ─────────────────────────────────────────────────────
if ! command -v docker &>/dev/null; then
echo "Docker no encontrado. Instalo o aseguro de que este en PATH."
exit 1
fi
# ── 2. Levantar postgres y redis ────────────────────────────────────────────
echo "Levantando postgres y redis..."
docker compose up -d postgres redis
# ── 3. Esperar a que postgres responda ──────────────────────────────────────
echo "Esperando a postgres..."
MAX_WAIT=30
COUNT=0
until docker compose exec -T postgres pg_isready -U mdv &>/dev/null; do
sleep 1
COUNT=$((COUNT + 1))
if [ "$COUNT" -ge "$MAX_WAIT" ]; then
echo "postgres no respondio en ${MAX_WAIT}s"
exit 1
fi
done
echo "postgres listo"
# ── 4. Instalar dependencias ─────────────────────────────────────────────────
echo "npm install..."
npm install
# ── 5. Asegurar .env con DATABASE_URL ───────────────────────────────────────
if [ ! -f .env ]; then
echo "Creando .env con DATABASE_URL..."
cat > .env <<'EOF'
DATABASE_URL=postgres://mdv:mdv_dev_only@localhost:5432/mercadodevida
NODE_ENV=development
EOF
fi
# ── 6. Exportar variables para que los procesos hijos las tengan ───────────────
export DATABASE_URL="postgres://mdv:mdv_dev_only@localhost:5432/mercadodevida"
export NODE_ENV="development"
# ── 7. Aplicar migraciones ──────────────────────────────────────────────────
echo "Aplicando migraciones..."
npx node-pg-migrate up
# ── 8. Arrancar servidor dev ─────────────────────────────────────────────────
echo "Todo listo. Arrancando servidor dev..."
npm run start