Saltar al contenido

Diff de esquema SQL

Compara dos esquemas CREATE TABLE y genera la migración ALTER TABLE entre ellos.

Entrada
Esquema de destino (CREATE TABLE)
Salida

Diff de esquema SQL

Pega tu esquema actual a la izquierda y el esquema que quieres alcanzar a la derecha, y esta herramienta te escribe la migración entre ellos. Compara las sentencias CREATE TABLE tabla por tabla y columna por columna, después genera las sentencias CREATE TABLE, DROP TABLE, ADD COLUMN, DROP COLUMN y ALTER COLUMN necesarias para transformar el primer esquema al segundo — útil para revisar un cambio de esquema, escribir un archivo de migración a mano, o verificar qué hizo realmente una herramienta de generación de esquemas.

Elige una base de datos en la opción Database — PostgreSQL, MySQL o SQLite — ya que cada una escribe los cambios de columna de forma diferente: PostgreSQL usa ALTER COLUMN ... TYPE y SET/DROP NOT NULL, MySQL combina el tipo y la nulabilidad en una sentencia MODIFY COLUMN única, y SQLite no tiene ALTER COLUMN en absoluto, así que esos casos se anotan como necesitando un reconstrucción de tabla. Incluye cambios de índices para diferenciar también las sentencias CREATE INDEX, envuelve el resultado en una transacción, y activa la opción de reversión para una segunda migración inversa añadida bajo la primera.

Eliminar una tabla o columna, reducir un tipo, o añadir NOT NULL puede descartar datos o fallar contra filas que no caben en la nueva restricción. Con "Advertir sobre pérdida de datos" activado, cada paso de este tipo se marca en el resultado para que sea fácil de detectar antes de ejecutar nada contra una base de datos real. Las tablas que se referencian entre sí a través de una clave foránea se crean y se eliminan en orden de dependencias, así que el script no falla en una tabla que necesitaba primero.

Todo se ejecuta localmente en tu navegador — tus esquemas nunca se suben a ningún lugar, así que es seguro pegar definiciones de tabla reales de una base de datos privada. Copia la migración, descárgala como archivo .txt, o envía el resultado de vuelta a la entrada para seguir refinándolo.

Preguntas frecuentes

¿Qué dialectos SQL son compatibles?
PostgreSQL, MySQL y SQLite. Elige uno en la opción Base de datos — cada uno escribe la sintaxis ALTER COLUMN, índices y entrecomillado de forma diferente.
¿Puede detectar cambios que podrían perder datos?
Sí. Tablas eliminadas, columnas eliminadas, columnas reducidas a un tipo más pequeño, y columnas hechas NOT NULL se marcan con un comentario de advertencia cuando "Advertir sobre pérdida de datos" está activado.
¿Maneja las dependencias de clave foránea?
Sí. Cuando una tabla hace referencia a otra, las sentencias CREATE TABLE se ordenan para que la tabla referenciada venga primero, y las sentencias DROP TABLE se ordenan para que las tablas referenciadores se eliminen antes que las tablas de las que dependen.
¿Qué sintaxis SQL lee?
Sentencias CREATE TABLE estándar con columnas tipadas, NOT NULL, PRIMARY KEY y REFERENCES, más sentencias CREATE INDEX independientes. Las sentencias que no reconoce (inserciones, otro DDL) se saltan en lugar de rechazarse.
¿Se suben mis esquemas a algún lugar?
No. Comparar esquemas y generar la migración se ejecuta completamente en tu navegador — nada de lo que pegues aquí se envía a un servidor.