Здравствуй, %username%! В моей работе часто встречается ситуация, когда необходимо обновить схему базы данных MySQL, используемой при работе того или иного сайта, а затем сделать аналогичные изменения на одном или нескольких серверах. Естественно требуется также сохранять состояния схемы после каждого инкрементального обновления. Для некоторых таблиц, хранящих статические данные требуется также синхронизировать данные целой таблицы. Текущее решение:
1) Хранить схему в файле формата MySQL Workbench (*.mwb)
2) После каждого изменения создавать новый коммит в системе контроля версий (Subversion)
3) Использовать встроенные средства MySQL Workbench для синхронизации изменений (Synchronize Database). Аналогично можно использовать другое ПО, наподобие SQLYog, которое позволяет синхронизировать не только схему, но и данные.
Этот способ не очень удобен, поскольку требуется производить синхронизацию вручную и отдельно для каждой таблицы, выбирая ее в диалоге. Вопрос: какие еще способы выполнения инкрементальных обновлений схемы базы данных ты можешь предложить? Обычная репликация не подходит, поскольку соединение с серверами непостоянно и общение с ними может происходить по SSH. Требуется именно технология обновления по требованию, возможно также использующая бинарные логи или дампы.