MemoryGraph soporta migrar memorias entre diferentes tipos de backend con validacion completa, verificacion y capacidades de rollback. Tus datos nunca quedan atrapados.

Backends Soportados

Backend Tipo Mejor Para
SQLite Archivo local Desarrollo, usuario unico, empezar
FalkorDBLite Grafo embebido Consultas de grafo locales sin servidor
FalkorDB Grafo basado en Redis Produccion, alto rendimiento, sync en la nube
Neo4j Grafo empresarial Despliegues empresariales, consultas complejas
Memgraph Grafo en memoria Analitica en tiempo real, datos streaming

Inicio Rapido

1. Validar Primero (Recomendado)

Siempre comienza con un dry-run para asegurar que la migracion sera exitosa:

memorygraph migrate --to falkordb --to-uri redis://prod.ejemplo.com --dry-run

La salida muestra la validacion del dry-run:

Dry-run exitoso - la migracion procederia de forma segura
Memorias de origen a migrar - 150

2. Ejecutar Migracion

Una vez que la validacion sea exitosa, ejecuta la migracion real:

memorygraph migrate --to falkordb --to-uri redis://prod.ejemplo.com --verbose

La migracion pasa por 6 fases con salida de progreso:

Fase 1 - Validacion pre-vuelo
Fase 2 - Exportando desde origen (150 memorias)
Fase 3 - Validando exportacion
Fase 4 - Importando a destino
Fase 5 - Verificando migracion
Fase 6 - Limpieza

Migracion completada exitosamente!
Migradas 150 memorias, 342 relaciones
Duracion - 3.2 segundos

Opciones CLI

Opcion Descripcion Ejemplo
--to <backend> Tipo de backend destino (requerido) --to falkordb
--to-uri <uri> URI de base de datos destino --to-uri redis://localhost
--to-path <path> Ruta de base de datos destino (SQLite/FalkorDBLite) --to-path /data/prod.db
--dry-run Validar sin cambios --dry-run
--verbose Mostrar progreso detallado --verbose
--from <backend> Backend origen (predeterminado actual) --from sqlite

Escenarios Comunes de Migracion

Desarrollo a Produccion

Migrar de SQLite local a FalkorDB en la nube:

# Backend actual es SQLite
memorygraph migrate --to falkordb --to-uri redis://prod.ejemplo.com --verbose

Entre Bases de Datos de Grafos

Migrar de Neo4j a FalkorDB:

memorygraph migrate \
  --from neo4j --from-uri bolt://localhost \
  --from-username neo4j --from-password password \
  --to falkordb --to-uri redis://localhost

Pruebas Locales

Probar migracion a una base de datos temporal:

memorygraph migrate \
  --to sqlite \
  --to-path /tmp/test-migration.db \
  --dry-run

Herramientas MCP

Para uso dentro de Claude Desktop u otros clientes MCP:

migrate_database

Parametros para la herramienta MCP migrate_database:

  • target_backend - El backend destino (ej., "falkordb")
  • target_config.uri - URI de conexion para el destino
  • dry_run - Establecer a true para solo validacion
  • verify - Habilitar verificacion post-migracion

validate_migration

Mismos parametros que migrate_database, realiza validacion dry-run sin hacer cambios.

Pipeline de Migracion de 6 Fases

  1. Validacion Pre-vuelo - Verificar que los backends origen y destino son accesibles
  2. Exportar - Crear archivo de exportacion temporal con todas las memorias y relaciones
  3. Validacion - Verificar integridad y estructura del archivo de exportacion
  4. Importar - Importar datos al backend destino (omitido en dry-run)
  5. Verificacion - Comparar conteos y verificar memorias aleatorias
  6. Limpieza - Eliminar archivos temporales y reportar estadisticas

Caracteristicas de Seguridad

  • Modo Dry-Run - Valida migracion sin hacer cambios
  • Verificacion - Compara datos de origen y destino despues de migracion
  • Rollback Automatico - Revierte backend destino en caso de fallo
  • Deteccion de Duplicados - Omite memorias que ya existen en destino
  • Reporte de Progreso - Muestra progreso en tiempo real para migraciones grandes

Exportar/Importar

Tambien puedes exportar e importar datos manualmente:

# Exportar a JSON
memorygraph export --format json --output backup.json

# Importar desde JSON
memorygraph import --format json --input backup.json

Rendimiento

Tamano Dataset Exportar Importar Total
Pequeno (<100 memorias) <1 seg <2 seg ~3-5 seg
Mediano (100-1000) 1-5 seg 2-10 seg ~5-20 seg
Grande (1000-10000) 5-30 seg 10-50 seg ~20-120 seg

El rendimiento varia segun el tipo de backend y latencia de red.

Solucion de Problemas

"Backend origen no accesible"

# Verificar backend actual
memorygraph health

# Verificar variables de entorno
echo $MEMORY_BACKEND
echo $MEMORY_SQLITE_PATH

"Verificacion fallida - Desajuste en conteo de memorias"

  1. Revisar logs del backend destino
  2. Intentar migracion de nuevo con --verbose
  3. Verificar espacio en disco en destino
  4. El rollback ocurre automaticamente

Habilitar Logging de Debug

export MEMORYGRAPH_LOG_LEVEL=DEBUG
memorygraph migrate --to <destino> --verbose

Mejores Practicas

  1. Siempre dry-run primero - --dry-run valida sin cambios
  2. Usar verificacion - Agrega minima sobrecarga pero asegura integridad
  3. Backup antes de migrar - Exportar estado actual antes de migracion
  4. Probar con datasets pequenos - Probar en staging antes de produccion
# Flujo de trabajo recomendado
memorygraph export --format json --output backup-$(date +%Y%m%d).json
memorygraph migrate --to <destino> --dry-run
memorygraph migrate --to <destino> --verbose
memorygraph health

Despues de Migrar

Actualiza tu entorno para apuntar al nuevo backend:

# Cambiar al nuevo backend
export MEMORY_BACKEND=falkordb
export MEMORY_FALKORDB_URI=redis://prod

# Verificar datos y crear backup
memorygraph health
memorygraph export --format json --output prod-backup.json