Я искал портативную программу script или командной строки, которая может синхронизировать две схемы баз данных MySQL. Я не ищу решение на основе графического интерфейса, потому что оно не может быть автоматизировано или запущено с помощью средства buid/deployment.
В основном то, что он должен делать, это проверка базы данных1 и базы данных2. Проверьте разницу в схеме (таблицы и индексы) и предложите кучу SQL-операторов для запуска на одном, чтобы она максимально похожа на аналогичную структуру другого, минимизируя повреждение данных.
Если кто-то может указать пакет PHP, Python или Ruby, где реализован этот тип решения, я могу попытаться скопировать код оттуда.
Многие инструменты GUI MySQL, вероятно, могут это сделать, но я ищу решение для сценариев.
Изменить: Извините за неясность: я ищу синхронизацию в структуре таблицы, сохраняя при этом данные, насколько это возможно. Не репликация данных.
Дополнительная информация:
Почему репликация не работает.
- Базы установки распространяются вокруг состояния.
- Мы хотим, чтобы установщик выполнял динамические исправления в БД на основе chagnes, сделанных в последней версии, независимо от того, какая более старая версия может использовать конечный пользователь.
- Изменения в основном напоминают добавление нового столбца в таблицы, создание новых индексов или падение индексов, добавление таблиц или удаление таблиц, используемых системой внутри (мы не отбрасываем таблицу пользовательских данных).
Если это GUI: Нет, он не может быть использован. Мы не хотим связывать приложение с 20 МБ с нашим установщиком только для DB diff. Специально, когда исходный установщик меньше 1 МБ.