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
- Validacion Pre-vuelo - Verificar que los backends origen y destino son accesibles
- Exportar - Crear archivo de exportacion temporal con todas las memorias y relaciones
- Validacion - Verificar integridad y estructura del archivo de exportacion
- Importar - Importar datos al backend destino (omitido en dry-run)
- Verificacion - Comparar conteos y verificar memorias aleatorias
- 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"
- Revisar logs del backend destino
- Intentar migracion de nuevo con
--verbose - Verificar espacio en disco en destino
- El rollback ocurre automaticamente
Habilitar Logging de Debug
export MEMORYGRAPH_LOG_LEVEL=DEBUG
memorygraph migrate --to <destino> --verbose Mejores Practicas
- Siempre dry-run primero -
--dry-runvalida sin cambios - Usar verificacion - Agrega minima sobrecarga pero asegura integridad
- Backup antes de migrar - Exportar estado actual antes de migracion
- 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