workspace-v1/shared/knowledge-base/reference/erp-inmobiliaria-legacy/gamilit/database/scripts/load-users-and-profiles.sh
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

173 lines
5.9 KiB
Bash
Executable File

#!/bin/bash
# ============================================================================
# Script: load-users-and-profiles.sh
# Descripción: Carga usuarios y perfiles correctamente
# Versión: 2.0 (con correcciones para tablas faltantes)
# Fecha: 2025-11-09
# Autor: Claude Code (AI Assistant)
# ============================================================================
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
DB_DIR="$(dirname "$SCRIPT_DIR")"
cd "$DB_DIR"
# Cargar credenciales
if [ ! -f "database-credentials-dev.txt" ]; then
echo "❌ Error: database-credentials-dev.txt no encontrado"
exit 1
fi
DB_PASSWORD=$(grep "^Password:" database-credentials-dev.txt | awk '{print $2}')
export PGPASSWORD="$DB_PASSWORD"
PSQL="psql -h localhost -p 5432 -U gamilit_user -d gamilit_platform"
echo "════════════════════════════════════════════════════════════════"
echo " CARGANDO USUARIOS Y PERFILES - GAMILIT PLATFORM"
echo "════════════════════════════════════════════════════════════════"
echo ""
# PASO 1: Verificar tablas de gamificación
echo "📋 PASO 1: Verificando tablas de gamificación..."
TABLES_COUNT=$($PSQL -t -c "
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = 'gamification_system'
AND table_name IN ('user_stats', 'user_ranks');
" | tr -d ' ')
if [ "$TABLES_COUNT" -lt 2 ]; then
echo "⚠️ Tablas de gamificación faltantes ($TABLES_COUNT/2). Creando..."
bash "$SCRIPT_DIR/fix-missing-gamification-tables.sh"
else
echo "✅ Tablas de gamificación presentes (2/2)"
fi
echo ""
# PASO 2: Cargar usuarios en auth.users
echo "👥 PASO 2: Cargando usuarios en auth.users..."
if [ -f "seeds/dev/auth/01-demo-users.sql" ]; then
$PSQL -f seeds/dev/auth/01-demo-users.sql > /dev/null 2>&1
echo " ✅ Demo users cargados"
else
echo " ⚠️ seeds/dev/auth/01-demo-users.sql no encontrado"
fi
if [ -f "seeds/dev/auth/02-test-users.sql" ]; then
$PSQL -f seeds/dev/auth/02-test-users.sql > /dev/null 2>&1
echo " ✅ Test users cargados"
else
echo " ⚠️ seeds/dev/auth/02-test-users.sql no encontrado"
fi
USERS_COUNT=$($PSQL -t -c "
SELECT COUNT(*) FROM auth.users
WHERE email LIKE '%@glit.edu.mx'
OR email LIKE '%@demo.glit.edu.mx'
OR email LIKE '%@gamilit.com';
" | tr -d ' ')
echo " 📊 Total usuarios: $USERS_COUNT"
echo ""
# PASO 3: Cargar profiles en auth_management.profiles
echo "📝 PASO 3: Cargando profiles..."
if [ -f "seeds/dev/auth_management/03-profiles.sql" ]; then
# Ejecutar y capturar errores
if $PSQL -f seeds/dev/auth_management/03-profiles.sql 2>&1 | grep -q "ERROR"; then
echo " ⚠️ Error al cargar profiles. Intentando método alternativo..."
# Deshabilitar trigger temporalmente
$PSQL -c "ALTER TABLE auth_management.profiles DISABLE TRIGGER trg_initialize_user_stats;" > /dev/null 2>&1
# Re-intentar carga
$PSQL -f seeds/dev/auth_management/03-profiles.sql > /dev/null 2>&1
# Re-habilitar trigger
$PSQL -c "ALTER TABLE auth_management.profiles ENABLE TRIGGER trg_initialize_user_stats;" > /dev/null 2>&1
echo " ✅ Profiles cargados (método alternativo)"
else
echo " ✅ Profiles cargados"
fi
else
echo " ⚠️ seeds/dev/auth_management/03-profiles.sql no encontrado"
fi
PROFILES_COUNT=$($PSQL -t -c "
SELECT COUNT(*) FROM auth_management.profiles
WHERE email LIKE '%@glit.edu.mx'
OR email LIKE '%@demo.glit.edu.mx'
OR email LIKE '%@gamilit.com';
" | tr -d ' ')
echo " 📊 Total profiles: $PROFILES_COUNT"
echo ""
# PASO 4: Verificación final
echo "✅ PASO 4: Verificación final..."
echo ""
$PSQL -c "
SELECT
'auth.users' as tabla,
COUNT(*) as total,
COUNT(*) FILTER (WHERE role = 'super_admin') as admins,
COUNT(*) FILTER (WHERE role = 'admin_teacher') as teachers,
COUNT(*) FILTER (WHERE role = 'student') as students
FROM auth.users
WHERE email LIKE '%@glit.edu.mx'
OR email LIKE '%@demo.glit.edu.mx'
OR email LIKE '%@gamilit.com'
UNION ALL
SELECT
'auth_management.profiles' as tabla,
COUNT(*) as total,
COUNT(*) FILTER (WHERE role = 'super_admin') as admins,
COUNT(*) FILTER (WHERE role = 'admin_teacher') as teachers,
COUNT(*) FILTER (WHERE role = 'student') as students
FROM auth_management.profiles
WHERE email LIKE '%@glit.edu.mx'
OR email LIKE '%@demo.glit.edu.mx'
OR email LIKE '%@gamilit.com';
"
echo ""
# Verificar vinculación
UNLINKED=$($PSQL -t -c "
SELECT COUNT(*)
FROM auth.users u
LEFT JOIN auth_management.profiles p ON u.id = p.user_id
WHERE p.user_id IS NULL
AND (u.email LIKE '%@glit.edu.mx'
OR u.email LIKE '%@demo.glit.edu.mx'
OR u.email LIKE '%@gamilit.com');
" | tr -d ' ')
if [ "$UNLINKED" -gt 0 ]; then
echo "⚠️ Advertencia: $UNLINKED usuarios sin perfil"
else
echo "✅ Todos los usuarios tienen perfil vinculado"
fi
echo ""
echo "════════════════════════════════════════════════════════════════"
echo " ✅ CARGA COMPLETADA"
echo "════════════════════════════════════════════════════════════════"
echo ""
echo "📊 Resumen:"
echo " Usuarios cargados: $USERS_COUNT"
echo " Profiles cargados: $PROFILES_COUNT"
echo " Sin vincular: $UNLINKED"
echo ""
echo "📝 Para ver detalles, ejecutar:"
echo " bash scripts/verify-users.sh"
echo ""