Files
SKEEN-Proyecto/docs/migracion.md
Consultoría Alcaraz Salazar a718592291 Initial commit: SKEEN Derma Experts - Sistema Integral de Gestión Clínica
- Frontend React (SKEEN Brand) con Vite, TypeScript, Tailwind
- Frontend Homenest (versión alternativa)
- Módulos Odoo 17 custom (citas, pacientes, monedero, pagos, ventas, inventario, whatsapp)
- WACRM fork (Next.js 16 + Supabase)
- Hermes + Bridge + Skills (Qwen3.6 via Nan Builders)
- Scripts de migración y operación
- Documentación extensiva en docs/
2026-07-20 07:44:23 +00:00

8.2 KiB

Guía de Migración — SKEEN Derma Experts

Versión: 2.0
Fecha: 16 de julio de 2026


1. Introducción

Esta guía describe el proceso de migración de datos desde el sistema legacy de SKEEN (https://sistema.skeenmx.app/) hacia el nuevo sistema basado en Odoo 17.

Importante: La migración requiere autorización documentada del cliente. No se ha realizado extracción masiva de datos sin permiso explícito.


2. Datos a Migrar

Entidad Descripción Prioridad
Pacientes Datos personales, contacto, historial médico Alta
Citas Histórico de citas, fechas, servicios Alta
Servicios Catálogo de tratamientos, precios, paquetes Alta
Ventas Histórico de ventas, pagos, adeudos Media
Monedero Puntos de fidelidad acumulados Media
Inventario Productos y consumibles Media
Médicos Personal de la clínica Baja

3. Formatos de Datos

3.1 CSV de Pacientes

name,phone,email,birthdate,gender,blood_type,allergies,address,notes
Juan Pérez,526641234567,juan@example.com,1990-01-15,male,O+,Penicilina,"Calle 123, Rosarito","Paciente frecuente"

Campos:

  • name (required): Nombre completo
  • phone (required): Teléfono (formato internacional sin +)
  • email: Email
  • birthdate: Fecha de nacimiento (YYYY-MM-DD)
  • gender: male, female, other
  • blood_type: Tipo de sangre
  • allergies: Alergias
  • address: Dirección
  • notes: Notas adicionales

3.2 CSV de Servicios

name,code,category,price,duration_min,package_price,package_sessions,package_notes,description,service_group,color,is_favorite
Consulta Dermatologica,CONS-DERM,consulta,800,30,0,0,,Evaluación completa,Consultas,#1abc9c,true
Depilación Laser Full Body,LASER-FUL,tratamiento,2500,90,7000,3,Ahorro de $500,Depilación full body,Corporal,#e74c3c,false

Campos:

  • name (required): Nombre del servicio
  • code (required): Código único
  • category: consulta, tratamiento, procedimiento, paquete
  • price (required): Precio por sesión
  • duration_min: Duración en minutos
  • package_price: Precio del paquete (0 si no aplica)
  • package_sessions: Sesiones del paquete (0 si no aplica)
  • package_notes: Notas del paquete
  • description: Descripción
  • service_group: Grupo/categoría
  • color: Color hexadecimal
  • is_favorite: true/false

3.3 CSV de Inventario

name,kind,sku,category,unit,qty,qty_optimal,qty_min,cost,expiry_date,notes
Suero Vitamina C,producto,PRD-001,Skincare,pieza,24,30,5,320,2027-06-15,Suero antioxidante
Guantes Estériles,consumible,CON-003,Instrumental,caja,8,15,3,95,,Caja de 100 unidades

Campos:

  • name (required): Nombre del item
  • kind: producto o consumible
  • sku: Código SKU
  • category: Categoría
  • unit: Unidad de medida
  • qty: Existencia actual
  • qty_optimal: Nivel óptimo
  • qty_min: Stock mínimo
  • cost: Costo unitario
  • expiry_date: Caducidad (YYYY-MM-DD)
  • notes: Notas

3.4 CSV de Citas

patient_name,patient_phone,service_code,date,time,state,notes
Juan Pérez,526641234567,CONS-DERM,2026-07-17,10:00,confirmed,Primera visita

3.5 CSV de Ventas

patient_phone,date,service_code,qty,price,payment_method,notes
526641234567,2026-07-17,CONS-DERM,1,800,cash,Pago en efectivo

4. Proceso de Migración

4.1 Preparación

  1. Obtener autorización: Documento firmado por SKEEN autorizando la extracción.
  2. Exportar datos: Del sistema legacy (CSV, SQL dump, o API).
  3. Limpiar datos: Verificar formatos, eliminar duplicados.
  4. Backup: Respaldar base de datos actual de Odoo.

4.2 Ejecución

# 1. Colocar CSVs en el directorio de migración
cd /root/migracion
mkdir -p datos
cp /ruta/a/csvs/* datos/

# 2. Ejecutar migración principal (pacientes, servicios, citas, ventas)
python3 importar_a_odoo.py

# 3. Importar servicios e inventario específicos
python3 importar_servicios_inventario.py \
  --servicios datos/servicios.csv \
  --inventario datos/inventario.csv \
  --purge-citas \
  --purge-sql \
  --generar-hermes

# 4. Verificar datos importados
python3 -c "
import xmlrpc.client
url='http://localhost:8069'
common=xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/common')
uid=common.authenticate('skeen_odoo','admin','skeen_admin_2026',{})
models=xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/object')
for m in ['res.partner','skeen.servicio','skeen.cita','skeen.inventario.item']:
    n=models.execute_kw('skeen_odoo',uid,'skeen_admin_2026',m,'search_count',[[]])
    print(m,n)
"

4.3 Validación

  1. Conteo de registros: Comparar totales origen vs destino.
  2. Muestra aleatoria: Verificar 10-20 registros manualmente.
  3. Pruebas funcionales: Agendar cita, consultar saldo, redimir puntos.
  4. Reporte de errores: Documentar registros que fallaron.

5. Scripts de Migración

5.1 importar_a_odoo.py

Script principal de migración. Importa:

  • Pacientes (res.partner)
  • Servicios (skeen.servicio)
  • Citas (skeen.cita)
  • Ventas (skeen.venta)
  • Pagos (skeen.pago)
  • Monederos (skeen.monedero)

Uso:

python3 importar_a_odoo.py

5.2 importar_servicios_inventario.py

Script especializado para servicios e inventario.

Uso:

python3 importar_servicios_inventario.py \
  --servicios servicios.csv \
  --inventario inventario.csv \
  [--purge-citas] \
  [--purge-sql] \
  [--generar-hermes]

Opciones:

  • --purge-citas: Eliminar citas existentes antes de importar
  • --purge-sql: Usar TRUNCATE SQL para limpieza rápida
  • --generar-hermes: Generar catálogo JSON para skills de Hermes

5.3 extraer_skeen.py

Script de extracción del sistema legacy. Requiere credenciales y autorización.

Nota: Este script está disponible pero no se ha ejecutado por restricciones de autorización.


6. Limpieza de Datos Demo

Antes de migrar datos reales, se recomienda limpiar datos demo:

cd /root/migracion

# Opción 1: Script de borrado
python3 borrar_datos_demo.py

# Opción 2: SQL directo (más rápido)
python3 importar_servicios_inventario.py --purge-citas --purge-sql --servicios /dev/null --inventario /dev/null

7. Sincronización Post-Migración

Después de la migración, es necesario sincronizar con WACRM:

# Desde el frontend o vía API
curl -X POST http://localhost:8069/skeen/frontend/v1/wacrm/sync \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"sync_contacts":true,"sync_conversations":true,"sync_messages":true,"sync_deals":true}'

8. Regeneración del Catálogo Hermes

Después de importar servicios, regenerar el catálogo para Hermes:

cd /root/migracion
python3 importar_servicios_inventario.py --solo-hermes

Esto actualiza:

  • /root/.hermes/skills/skeen-services.json
  • /root/skeen-roadmap-hermes/hermes/skills/skeen-services.json

9. Problemas Comunes

9.1 Registros duplicados

Problema: Al re-ejecutar la migración, se crean duplicados.

Solución: Usar --purge-citas --purge-sql antes de importar.

9.2 Timeout en importación masiva

Problema: Miles de registros tardan demasiado.

Solución: Usar --purge-sql para limpieza rápida, y considerar dividir en lotes.

9.3 Campos faltantes en CSV

Problema: Algunos CSVs no tienen todos los campos.

Solución: Los scripts tienen valores por defecto. Revisar los warnings en la salida.

9.4 Teléfonos con formato incorrecto

Problema: Números de teléfono con formato local.

Solución: Normalizar a formato internacional sin + (ej. 526641234567).


10. Checklist de Migración

  • Autorización documentada del cliente
  • Exportación de datos del sistema legacy
  • Backup de base de datos Odoo actual
  • Limpieza de datos demo
  • Ejecución de scripts de migración
  • Validación de conteos
  • Validación de muestra aleatoria
  • Pruebas funcionales
  • Sincronización WACRM
  • Regeneración catálogo Hermes
  • Reporte de errores y resolución
  • Aprobación final del cliente

11. Contacto

Para dudas sobre migración: