Diff de Schema de Base de Datos

Compara dos schemas y genera un borrador de migracion

Analiza tablas, columnas, indices y claves foraneas a partir de SQL DDL o resumentes JSON/YAML.

Resultados de ejemplo

2 Ejemplos

Comparar SQL DDL y redactar una migracion PostgreSQL

Muestra como el schema agrega una columna obligatoria e indice y genera el SQL correspondiente.

{
  "summary": {
    "tablesAdded": 0,
    "tablesRemoved": 0,
    "columnsAdded": 1,
    "columnsRemoved": 0,
    "columnsChanged": 0,
    "indexesChanged": 1,
    "foreignKeysChanged": 0,
    "totalChanges": 2
  },
  "migrationSQL": "ALTER TABLE users ADD COLUMN email TEXT NOT NULL;\nCREATE INDEX idx_users_email ON users (email);"
}
Ver parámetros de entrada
{ "sourceSchema": "CREATE TABLE users (\n id INT PRIMARY KEY,\n name TEXT\n);", "targetSchema": "CREATE TABLE users (\n id INT PRIMARY KEY,\n name TEXT,\n email TEXT NOT NULL\n);\nCREATE INDEX idx_users_email ON users (email);", "schemaFormat": "sql", "dialect": "postgresql" }

Comparar schemas JSON con advertencia de SQLite

Compara resumentes JSON donde se elimina una tabla y una columna, incluyendo la nota de reconstruccion en SQLite.

{
  "summary": {
    "tablesRemoved": 1,
    "columnsRemoved": 1
  },
  "migrationSQL": "DROP TABLE audit_logs;\n-- SQLite requires table rebuild to drop column users.email"
}
Ver parámetros de entrada
{ "sourceSchema": "{\n \"tables\": {\n \"users\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n },\n \"email\": {\n \"type\": \"TEXT\",\n \"nullable\": false\n }\n }\n },\n \"audit_logs\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n }\n }\n }\n }\n}", "targetSchema": "{\n \"tables\": {\n \"users\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n }\n }\n }\n }\n}", "schemaFormat": "json", "dialect": "sqlite" }

Datos clave

Categoría
Desarrollo y Web
Tipos de entrada
textarea, select
Tipo de salida
json
Cobertura de muestras
4
API disponible
Yes

Resumen

Esta herramienta compara dos esquemas de base de datos y genera automáticamente un borrador de migración. Analiza estructuras mediante SQL DDL o resúmenes JSON/YAML para identificar diferencias en tablas, columnas, índices y claves foráneas, proporcionando el SQL necesario para sincronizar el esquema origen con el destino en PostgreSQL, MySQL o SQLite.

Cuándo usarlo

  • Planificar migraciones de base de datos antes de aplicar cambios en entornos de producción.
  • Revisar pull requests que modifican el esquema para validar el impacto exacto de las alteraciones propuestas.
  • Documentar diferencias entre entornos de desarrollo, staging y producción de forma automatizada.

Cómo funciona

  • Ingresa el esquema actual en el campo "Schema origen" y el esquema deseado en "Schema destino".
  • Selecciona el formato de entrada (SQL DDL, JSON/YAML o detección automática) y el dialecto de base de datos correspondiente.
  • El sistema analiza tablas, columnas, índices y claves foráneas para detectar adiciones, eliminaciones y modificaciones.
  • Recibe un objeto JSON con un resumen de cambios y el script SQL de migración listo para revisión.

Casos de uso

Generar scripts de migración SQL para despliegues de nuevas versiones de aplicaciones.
Auditar diferencias entre esquemas de desarrollo y producción antes de releases.
Crear documentación técnica automatizada de cambios en la estructura de bases de datos.

Ejemplos

1. Agregar columna de email e índice en PostgreSQL

DBA / Desarrollador backend
Contexto
El equipo necesita agregar una columna obligatoria de email y un índice a la tabla users para mejorar el rendimiento de búsquedas por correo electrónico.
Problema
El esquema actual solo contiene id y name, y se requiere migración sin pérdida de datos existentes.
Cómo usarlo
Pegar el DDL actual de users en "Schema origen" y el DDL con la columna email y el índice en "Schema destino", seleccionando formato SQL y dialecto PostgreSQL.
Resultado
Obtiene el comando ALTER TABLE para agregar la columna email como NOT NULL y CREATE INDEX para el nuevo índice, listos para ejecutarse en producción.

2. Eliminar tabla de auditoría en SQLite

Desarrollador mobile
Contexto
La aplicación necesita reducir el tamaño de la base de datos SQLite local eliminando la tabla audit_logs que ya no se utiliza.
Problema
SQLite tiene limitaciones para eliminar columnas y requiere reconstrucción de tablas.
Cómo usarlo
Pegar el esquema JSON completo en "Schema origen" y el esquema sin la tabla audit_logs en "Schema destino", seleccionando formato JSON y dialecto SQLite.
Resultado
Genera DROP TABLE audit_logs e incluye advertencias sobre las implicaciones de la operación en el contexto de SQLite.

3. Validar cambios entre entornos MySQL

Ingeniero DevOps
Contexto
Antes de deployar a producción, se debe verificar que los cambios de esquema aplicados en staging (nuevas tablas de facturación) estén correctamente documentados.
Problema
Comparar el esquema de producción actual contra el propuesto del equipo de desarrollo para evitar errores de despliegue.
Cómo usarlo
Exportar el DDL de producción como origen y el DDL de staging como destino, seleccionando SQL y MySQL.
Resultado
Lista detallada de ALTER TABLE y CREATE TABLE pendientes con conteo exacto de tablas y columnas modificadas para sincronizar ambientes.

Probar con muestras

sql

Hubs relacionados

Preguntas frecuentes

¿Qué formatos de entrada admite la herramienta?

Admite SQL DDL estándar y resúmenes estructurados en JSON o YAML.

¿Puedo comparar esquemas de diferentes motores de base de datos?

Sí, pero el SQL de migración generado seguirá la sintaxis del dialecto que selecciones (PostgreSQL, MySQL o SQLite).

¿La herramienta ejecuta automáticamente los cambios en mi base de datos?

No, solo genera un borrador de migración SQL para que lo revises y ejecutes manualmente con seguridad.

¿Qué elementos del esquema detecta la comparación?

Detecta cambios en tablas, columnas, índices y claves foráneas, incluyendo adiciones, eliminaciones y modificaciones.

¿Cómo maneja la herramienta las limitaciones específicas de SQLite?

Incluye advertencias específicas cuando SQLite requiere reconstruir tablas completas para eliminar columnas o modificar restricciones.

Documentación de la API

Punto final de la solicitud

POST /es/api/tools/database-schema-diff

Parámetros de la solicitud

Nombre del parámetro Tipo Requerido Descripción
sourceSchema textarea -
targetSchema textarea -
schemaFormat select No -
dialect select No -

Formato de respuesta

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Datos JSON: Datos JSON

Documentación de MCP

Agregue este herramienta a su configuración de servidor MCP:

{
  "mcpServers": {
    "elysiatools-database-schema-diff": {
      "name": "database-schema-diff",
      "description": "Compara dos schemas y genera un borrador de migracion",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=database-schema-diff",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Puede encadenar múltiples herramientas, por ejemplo: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máximo 20 herramientas.

Si encuentra algún problema, por favor, póngase en contacto con nosotros en [email protected]