Несколько баз данных, работающих на разных сайтах - одна структура базы данных - как обновить все?

Существует множество постоянно растущих сайтов, на которых запущен один экземпляр CMS (встроенный в CakePHP) на одном массиве серверов. CMS имеет заданную структуру базы данных, но, вероятно, потребуется регулярно обновлять ее - новые поля, изменение имен полей, новые таблицы... и т. Д.

Я не могу придумать хороший способ: 1) сохранить сайты, имеющие свои собственные базы данных (казалось бы, идеальные), но две, всегда основывая их на одной и той же регулярно обновляемой структуре базы данных.

До сих пор я думал о том, чтобы сохранить единую "шаблонную" базу данных и только обновить ее, а затем написать сценарий для сравнения и обновления - но даже тогда, как бы я узнал, изменилось ли поле, или это было новое поле, и предыдущий поле удалено... и т. д. и т. д. Я уверен, что я даже не думал обо всех проблемах, которые это вызовет. Любой совет с благодарностью.

1 ответ

Решение

Вы можете использовать инструмент миграции, например https://github.com/CakeDC/migrations. Основная идея миграций состоит в том, чтобы иметь своего рода управление версиями для вашей схемы базы данных, причем каждая миграция представляет собой "коммит", описывающий изменения (например, добавление таблицы, поле переименования и т. Д.), Которые должны применяться к схеме базы данных.

Другие вопросы по тегам