Estaba buscando un script portátil o un programa de línea de comandos que pueda sincronizar dos esquemas de bases de datos MySQL. No busco una solución basada en GUI porque no puede ser automatizada o ejecutarse con la herramienta buid/deployment.Sincronizar el esquema de dos bases de datos en MySQL
Básicamente lo que debe hacer es escanear database1 y database2. Compruebe la diferencia de esquema (tablas e índices) y proponga un conjunto de sentencias de SQL para ejecutar en una, de modo que obtenga la estructura similar de la otra minimizando el daño de datos tanto como sea posible.
Si alguien puede indicar un paquete de PHP, Python o Ruby donde se implementa este tipo de solución, puedo intentar copiar el código desde allí.
Muchas herramientas de MySQL GUI probablemente pueden hacer esto, pero estoy buscando una solución de secuencias de comandos.
Editar: Disculpa por no ser más claro: Lo que estoy buscando es la sincronización en la estructura de la tabla manteniendo los datos intactos en la medida de lo posible. No es replicación de datos.
Más información:
Por qué la replicación no funcionará.
- Las bases de instalación se extienden por todo el estado.
- Queremos que el instalador realice correcciones dinámicas en la base de datos basadas en chagnes realizados en la última versión, independientemente de la versión anterior que el usuario final pueda estar utilizando.
- Los cambios son, en general, como agregar una nueva columna a una tabla, crear nuevos índices o descartar índices, agregar tablas o eliminar tablas usadas internamente por el sistema (no descartamos la tabla de datos de usuario).
Si se trata de una GUI: No, no se puede usar. No deseamos combinar una aplicación de 20MB con nuestro instalador solo para DB diff. Especialmente cuando el instalador original es inferior a 1 MB.
+1 excelente pregunta. Iba a preguntar porque estoy buscando la misma solución ... pero encontré esto. –