
Я работаю над проектом, в котором схема базы данных MySQL используется на трех разных серверах (базы данных MySQL) в 20 копиях схемы для каждого сервера (все они идентичны по форме, но содержат разные данные). Таким образом, 60 копий одной и той же схемы распределены по трем машинам.
Эти машины отчитываются перед хост-машиной о своих результатах. Проблема, с которой я сталкиваюсь, заключается в управлении любыми изменениями схемы, пока все развернуто. Каждый раз, когда я хочу добавить или удалить столбец, мне приходится реплицировать запрос 20 раз, а затем копировать его на три машины. Есть ли программное обеспечение, которое я могу использовать для управления всеми этими идентичными (по схеме, а не по содержимому данных, очевидно) экземплярами базы данных?? Я хочу найти программное обеспечение, которое будет просматривать все экземпляры базы данных и сообщать мне о любых изменениях схемы между ними (а также о размерах таблиц отдельных экземпляров).
Есть ли какое-либо программное обеспечение, которое может помочь мне управлять всем из одного источника — графического интерфейса или программы командной строки?
решение1
Есть несколько вариантов, которые могут вам в этом помочь, вот некоторые из них:
- Ансибль
- Дженкинс
- Рундек
Вы можете интегрировать Jenkins с веб-хуками Github, Bitbucket или Gitlab, чтобы при каждом новом коммите запускался конвейер DevOps.
Если вы используете какой-либо фреймворк, например Rails, вы также можете запускать миграции и загрузчики из него с помощью этого программного обеспечения, что также является вариантом для контроля версий схемы вашей базы данных.
Ура!