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