5.7 KiB
🚀 GUÍA DE IMPLEMENTACIÓN PROGRESIVA - EMERGES TES
Versión: 1.0
Fecha: 2025-01-XX
Estado: Guía de Implementación Activa
🎯 PROPÓSITO
Esta guía te permite implementar el sistema de gestión de contenido de forma progresiva y segura, sin romper la app operativa existente.
Principio: Cada paso es independiente, validable y reversible.
📋 PREPARACIÓN INICIAL
Paso 0: Verificar Prerequisitos
Requisitos:
- ✅ Node.js 18+ instalado
- ✅ PostgreSQL 14+ instalado y corriendo
- ✅ Acceso a la base de datos PostgreSQL
- ✅ App operativa funcionando correctamente
Verificar:
node --version # Debe ser 18+
psql --version # Debe ser 14+
npm --version # Debe estar instalado
🏗️ FASE 1: INFRAESTRUCTURA BASE
Paso 1.1: Instalar Dependencias del Backend
cd backend
npm install
Resultado esperado: Dependencias instaladas sin errores.
Paso 1.2: Configurar Variables de Entorno
- Crear archivo
backend/.env:
cd backend
cp ENV_TEMPLATE.md .env
# Editar .env con tus credenciales reales
- Completar valores:
DB_HOST: localhost (o IP del servidor)DB_PORT: 5432 (puerto por defecto PostgreSQL)DB_NAME: emerges_tesDB_USER: tu_usuario_postgresDB_PASSWORD: tu_password_postgres
Validar:
# Probar conexión manual
psql -h localhost -U tu_usuario -d postgres -c "SELECT version();"
Paso 1.3: Crear Base de Datos y Esquema
cd backend
npm run db:create
Este comando:
- ✅ Crea la base de datos
emerges_tessi no existe - ✅ Ejecuta todas las migraciones SQL
- ✅ Crea el esquema completo (tablas, índices, vistas, funciones)
Resultado esperado:
✅ Conectado a PostgreSQL
✅ Base de datos 'emerges_tes' creada
✅ Conectado a base de datos 'emerges_tes'
✅ Migración 001: Esquema creado
✅ Migración 002: Funciones y triggers creados
🎉 Base de datos configurada correctamente
Validar:
psql -h localhost -U tu_usuario -d emerges_tes -c "\dt emerges_content.*"
# Debe mostrar las tablas creadas
Paso 1.4: Migrar Contenido Inicial
cd backend
npm run migrate
Este comando:
- ✅ Lee
src/data/procedures.tsy migra protocolos - ✅ Lee
src/data/drugs.tsy migra fármacos - ✅ Inserta en PostgreSQL con estado
validated
Resultado esperado:
🚀 Iniciando migración de contenido...
✅ Conexión a PostgreSQL establecida
📋 Migrando X protocolos...
✅ rcp-adulto-svb
✅ rcp-adulto-sva
...
💊 Migrando Y fármacos...
✅ adrenalina
✅ amiodarona
...
🎉 Migración completada exitosamente
Validar:
psql -h localhost -U tu_usuario -d emerges_tes -c "SELECT COUNT(*) FROM emerges_content.content_items WHERE type = 'protocol';"
psql -h localhost -U tu_usuario -d emerges_tes -c "SELECT COUNT(*) FROM emerges_content.content_items WHERE type = 'drug';"
Paso 1.5: Iniciar Servidor Backend
cd backend
npm run dev
Resultado esperado:
🚀 EMERGES TES Backend API
📍 Servidor en: http://localhost:3000
📊 Health check: http://localhost:3000/health
✅ Conexión a PostgreSQL exitosa
Validar:
curl http://localhost:3000/health
# Debe devolver JSON con status: "ok"
✅ Validación FASE 1
Checklist:
- Base de datos creada
- Esquema completo (7 tablas)
- Contenido migrado (protocolos + fármacos)
- Servidor backend corriendo
- Health check responde correctamente
- App operativa sigue funcionando igual (sin cambios)
Si todo está ✅: Puedes continuar a FASE 2.
Si hay problemas: Revisar logs, verificar credenciales, consultar documentación.
🔄 FASE 2: SINCRONIZACIÓN OFFLINE (Próxima)
Estado: ⏳ Pendiente de implementación
Objetivos:
- Modificar app para cargar contenido desde API
- Implementar cache local (IndexedDB)
- Sincronización en background
- Fallback robusto
IMPORTANTE: Esta fase se implementará cuando FASE 1 esté completamente validada.
📝 NOTAS IMPORTANTES
Seguridad
- ❌ NUNCA commitear archivo
.enva Git - ✅ Añadir
backend/.enva.gitignore - ✅ Usar credenciales seguras en producción
Backup
Antes de migrar contenido:
# Backup de PostgreSQL
pg_dump -h localhost -U tu_usuario emerges_tes > backup_antes_migracion.sql
Rollback
Si algo sale mal:
# Restaurar backup
psql -h localhost -U tu_usuario emerges_tes < backup_antes_migracion.sql
🆘 TROUBLESHOOTING
Error: "Cannot connect to PostgreSQL"
Solución:
- Verificar que PostgreSQL está corriendo:
sudo systemctl status postgresql - Verificar credenciales en
.env - Verificar que el usuario tiene permisos
Error: "Database already exists"
Solución:
- Es normal si ya ejecutaste
db:createantes - El script no falla si la BD ya existe
Error: "Table already exists"
Solución:
- Las migraciones usan
CREATE TABLE IF NOT EXISTS - Si hay conflicto, revisar migraciones SQL
📚 DOCUMENTACIÓN RELACIONADA
docs/ARQUITECTURA_BBDD_Y_GESTION_CONTENIDO.md- Arquitectura completadocs/MODELO_DATOS_CONTENIDO.md- Modelo de datosdocs/ROADMAP_CONTENIDO_Y_ADMIN.md- Roadmap completo
✅ ESTADO ACTUAL
FASE 1: Infraestructura Base
- ✅ Estructura de directorios creada
- ✅ Scripts SQL de creación de esquema
- ✅ Configuración de PostgreSQL
- ✅ Scripts de migración básicos
- ✅ Servidor Express básico
- ⏳ Pendiente: Validación con datos reales
Próximo paso: Ejecutar FASE 1 y validar que todo funciona.
Esta guía se actualiza según progreso de implementación.