Skip to main content
SQLOZ
Chapter 6 Schema & Model Architecture

Capítulo 6: Comparación y Sincronización de Esquemas

Información: Este capítulo explica cómo detectar diferencias estructurales entre dos bases de datos, visualizarlas en una matriz diferencial y aplicar salvaguardas de copia de seguridad y reversión.

En este capítulo:

6.1 Detección de diferencias de esquema

Con el tiempo, las bases de datos de desarrollo y producción inevitablemente se desalinean (Schema Drift). SQLOZ identifica con exactitud cualquier divergencia estructural para garantizar una sincronización fiable:

  1. Abra el menú superior Herramientas → Comparar esquemas….
  2. Origen (Source): La base de referencia (ej. local_dev).
  3. Destino (Target): La base que debe actualizarse (ej. production_db).
  4. Pulse Comparar.

6.2 Matriz visual diferencial

Las discrepancias se presentan en una matriz intuitiva con código de colores:

ColorSignificadoOperación generada
🟢 VerdePresente en origen, ausente en destinoCREATE TABLE / ADD COLUMN
🟡 AmarilloPresente en ambos pero con tipo o índice distintoALTER TABLE
🔴 RojoEliminado en origen pero aún existente en destinoDROP

Ejemplo:

ORIGEN (local_dev)                | DESTINO (prod_db)               | ACCIÓN APLICABLE
payments                          | ❌ (ausente)                    | ➕ CREATE TABLE payments
users.phone_verified (BOOLEAN)    | users.phone_verified (TINYINT)  | 🔄 MODIFY COLUMN

6.3 Salvaguardas y mecanismos de seguridad

Al pulsar Aplicar sincronización, SQLOZ aplica reglas de protección estrictas:

  1. Copia de seguridad automática (_sqloz_bak_...): Disponible para motores MySQL/MariaDB. Antes de procesar sentencias DDL destructivas (DROP TABLE, DROP COLUMN, MODIFY COLUMN), la tabla de destino se respalda en una tabla temporal con marca de tiempo:
    CREATE TABLE IF NOT EXISTS `_sqloz_bak_<timestamp>_users` AS SELECT * FROM `users`;
  2. Script de reversión y restauración (MySQL/MariaDB): Habiendo completado la copia de respaldo, SQLOZ emite el archivo SQL para revertir los cambios de esquema junto con sentencias comentadas para reintegrar los datos:
    -- INSERT IGNORE INTO `users` SELECT * FROM `_sqloz_bak_<timestamp>_users`;
  3. Protección contra borrados destructivos: Todo comando que suponga la eliminación de tablas o columnas en el servidor de destino requiere la aprobación explícita del usuario.

Advertencia: En destinos PostgreSQL o SQLite no se generan tablas automáticas de respaldo. Realice siempre una copia de seguridad manual verificada antes de aplicar modificaciones estructurales en estos entornos.

Comparación de esquemas - matriz diferencial

Temas relacionados