Una migración de datos heredados que se concibe a sí misma como una operación de copia —leer las filas antiguas, escribir filas nuevas— siempre parecerá terminada antes de estarlo realmente. La migración de Omnitech CRM desde una instalación heredada de Perfex CRM que llevaba mucho tiempo en uso se construyó sobre una premisa distinta: migrar datos heredados es un problema de conciliación, y el trabajo de la migración es decir con claridad qué no pudo resolver, no solo qué movió.
01Cómo leer este trabajo
Por qué un script de migración no puede limitarse a copiar filas
Los identificadores, relaciones y reglas de acceso de un sistema heredado rara vez se corresponden de forma limpia con un nuevo esquema construido bajo supuestos distintos. Copiar las filas de forma literal obliga al nuevo esquema a heredar las inconsistencias del sistema antiguo, o bien descarta silenciosamente los registros que no encajan —y un descarte silencioso durante una migración de CRM puede significar un registro de cliente perdido o un ticket de soporte sin responsable—. Conciliar significa que la migración debe comparar activamente los identificadores heredados con el nuevo esquema y decidir, registro por registro, si esa coincidencia es segura de establecer automáticamente.
02Cómo leer este trabajo
Transaccional e idempotente, a propósito
Los migradores de Omnitech CRM son transaccionales e idempotentes: una falla a mitad de camino no deja la base de datos de destino a medio migrar, y el mismo paso de migración puede volver a ejecutarse de forma segura sin duplicar los registros ya migrados. Esto refleja la misma disciplina de idempotencia utilizada de forma más amplia en el diseño confiable de API: el manejo de transacciones de base de datos de Laravel es el mecanismo concreto usado aquí para hacer atómico cada paso de una migración de varios pasos (citado más abajo).
03Cómo leer este trabajo
Reportar lo que necesita una decisión humana
La migración reporta explícitamente los registros que no puede conciliar con confianza, en lugar de suponer y seguir adelante. Ese reporte es el entregable real de una migración centrada en la conciliación: convierte un número desconocido de problemas de datos silenciosos en una lista conocida y revisable. Preservar los ocho roles heredados de la instalación saliente de Perfex CRM siguió el mismo principio: las definiciones de roles se conciliaron con el nuevo sistema de permisos en lugar de descartarse y reconstruirse, de modo que las reglas de acceso del personal existentes se trasladaron en lugar de restablecerse silenciosamente.
04Cómo leer este trabajo
A qué se generaliza esto
Una migración heredada está terminada cuando puede decir con precisión qué migró, qué no pudo resolver automáticamente y qué necesita decidir una persona, y no cuando coinciden los conteos de filas. Ese estándar aplica sin importar si el sistema heredado es un CRM, una plataforma de comercio electrónico o una década de hojas de cálculo: el reporte de conciliación, y no un script de importación más grande, es lo que en realidad evita la pérdida silenciosa de datos.