erp-construccion-database-v2/seeds/dev/load-dev-seeds.sh
Adrian Flores Cortes 8df74f73d2 [TASK-2026-02-03-SEEDS] feat: Add complete development seeds for demo
Seeds include:
- 01-core-catalogs.sql: Units, currencies, taxes, banks, states (~100 records)
- 02-users-profiles.sql: 12 roles, 50+ permissions, 12 demo users
- 03-empresa-tenant.sql: Demo company with 2 branches, 4 warehouses
- 04-proyectos-obras.sql: 3 projects, stages, lots, apartments
- 05-presupuestos.sql: CMIC-based concepts, 5 budgets
- 06-estimaciones.sql: Contracts, estimates, advances
- 07-avances-calidad.sql: Progress, logbook, quality checklists
- 08-hse.sql: PPE catalog, training, incidents
- 09-finanzas.sql: Chart of accounts, CxP, CxC, balanced entries
- 10-activos-documentos.sql: Assets, maintenance, documents

Total: ~940 records for complete demo coverage

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 11:08:26 -06:00

110 lines
4.2 KiB
Bash

#!/bin/bash
# ═══════════════════════════════════════════════════════════════════════════════
# SCRIPT: load-dev-seeds.sh
# PROYECTO: ERP Construcción
# DESCRIPCIÓN: Carga todos los seeds de desarrollo en orden
# ═══════════════════════════════════════════════════════════════════════════════
set -e # Salir si hay error
# Configuración
DB_HOST="${DB_HOST:-localhost}"
DB_PORT="${DB_PORT:-5432}"
DB_NAME="${DB_NAME:-erp_construccion_db}"
DB_USER="${DB_USER:-erp_admin}"
DB_PASSWORD="${DB_PASSWORD:-erp_dev_2026}"
# Colores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Directorio de seeds
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo -e "${BLUE}══════════════════════════════════════════════════════════════${NC}"
echo -e "${BLUE} CARGA DE SEEDS DE DESARROLLO - ERP CONSTRUCCIÓN${NC}"
echo -e "${BLUE}══════════════════════════════════════════════════════════════${NC}"
echo ""
echo -e "${YELLOW}Base de datos: ${NC}${DB_NAME}"
echo -e "${YELLOW}Host: ${NC}${DB_HOST}:${DB_PORT}"
echo -e "${YELLOW}Usuario: ${NC}${DB_USER}"
echo ""
# Función para ejecutar un seed
run_seed() {
local seed_file=$1
local seed_name=$(basename "$seed_file")
if [ -f "$seed_file" ]; then
echo -e "${YELLOW}→ Cargando: ${NC}${seed_name}..."
PGPASSWORD=$DB_PASSWORD psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -f "$seed_file" -q
if [ $? -eq 0 ]; then
echo -e "${GREEN}${seed_name} cargado correctamente${NC}"
else
echo -e "${RED} ✗ Error al cargar ${seed_name}${NC}"
exit 1
fi
else
echo -e "${RED} ✗ Archivo no encontrado: ${seed_name}${NC}"
exit 1
fi
}
# Verificar conexión
echo -e "${YELLOW}Verificando conexión a la base de datos...${NC}"
PGPASSWORD=$DB_PASSWORD psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "SELECT 1" > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo -e "${RED}✗ No se pudo conectar a la base de datos${NC}"
echo -e "${RED} Verifica las credenciales y que el servidor esté ejecutándose${NC}"
exit 1
fi
echo -e "${GREEN}✓ Conexión exitosa${NC}"
echo ""
# Array de seeds en orden de ejecución
SEEDS=(
"01-core-catalogs.sql"
"02-users-profiles.sql"
"03-empresa-tenant.sql"
"04-proyectos-obras.sql"
"05-presupuestos.sql"
"06-estimaciones.sql"
"07-avances-calidad.sql"
"08-hse.sql"
"09-finanzas.sql"
"10-activos-documentos.sql"
)
# Ejecutar seeds
echo -e "${BLUE}Iniciando carga de seeds...${NC}"
echo ""
TOTAL=${#SEEDS[@]}
CURRENT=0
for seed in "${SEEDS[@]}"; do
CURRENT=$((CURRENT + 1))
echo -e "${BLUE}[${CURRENT}/${TOTAL}]${NC}"
run_seed "${SCRIPT_DIR}/${seed}"
echo ""
done
echo -e "${BLUE}══════════════════════════════════════════════════════════════${NC}"
echo -e "${GREEN} ✓ TODOS LOS SEEDS CARGADOS EXITOSAMENTE${NC}"
echo -e "${BLUE}══════════════════════════════════════════════════════════════${NC}"
echo ""
echo -e "${YELLOW}Usuarios demo disponibles:${NC}"
echo " - admin@demo.com / Demo2026! (Super Admin)"
echo " - director@demo.com / Demo2026! (Director)"
echo " - gerente1@demo.com / Demo2026! (Gerente Obra)"
echo " - residente1@demo.com / Demo2026! (Residente)"
echo ""
echo -e "${YELLOW}Proyectos demo:${NC}"
echo " - Residencial Las Palmas (horizontal)"
echo " - Torre Diamante (vertical)"
echo " - Plaza Central (comercial)"
echo ""