#!/bin/bash # Recuperación completa de la DB tras una reinicialización (deploy que vació # supabase-db). Orden: # 1. Todas las migraciones (scripts/apply_all_migrations.sh) # 2. Catálogo de encuestas (supabase/seed.sql) — sin esto, las migraciones # dejan organizations/surveys/questions vacías y nada de lo que sigue # tiene contra qué referenciar (setup_first_admin.sql sí funcionaría, # pero seed_prueba_50.sql fallaría: rpc_submit_response necesita # questions.id reales, que solo existen después de este paso). # 3. Usuario platform_admin (scripts/setup_first_admin.sql) # 4. Datos de prueba (docs/dashboard/seed_prueba_50.sql) # # Uso: # ADMIN_EMAIL='admin@inquality.com.py' ADMIN_PASSWORD='...' scripts/setup_all.sh set -e SCRIPT_DIR="$(dirname "$0")" ROOT_DIR="$SCRIPT_DIR/.." if [ -z "$ADMIN_EMAIL" ] || [ -z "$ADMIN_PASSWORD" ]; then echo "ERROR: ADMIN_EMAIL y ADMIN_PASSWORD son obligatorios (variables de entorno)." >&2 exit 1 fi echo "== 1/4: Aplicando todas las migraciones ==" "$SCRIPT_DIR/apply_all_migrations.sh" echo "== 2/4: Sembrando catálogo de encuestas (supabase/seed.sql) ==" # ADVERTENCIA propia del archivo: "SOLO ENTORNOS DE DESARROLLO — nunca ejecutar # en producción". Esa advertencia es para NO re-correrlo contra una DB con # datos reales (DELETE+INSERT de questions con UUIDs nuevos puede chocar con # answers existentes via FK). En este escenario de recuperación la DB está # vacía (reinicializada por el deploy) — no hay answers/responses que puedan # quedar huérfanas. Si la DB NO está realmente vacía, frenar antes de este paso. docker exec -i supabase-db psql -v ON_ERROR_STOP=1 -U postgres -d postgres < "$ROOT_DIR/supabase/seed.sql" echo "== 3/4: Creando usuario platform_admin ==" docker exec -i supabase-db psql -v ON_ERROR_STOP=1 -U postgres -d postgres \ -v email="$ADMIN_EMAIL" -v password="$ADMIN_PASSWORD" \ < "$ROOT_DIR/scripts/setup_first_admin.sql" echo "== 4/4: Sembrando datos de prueba (seed_prueba_50.sql) ==" docker exec -i supabase-db psql -v ON_ERROR_STOP=1 -U postgres -d postgres < "$ROOT_DIR/docs/dashboard/seed_prueba_50.sql" echo "Setup completo."