Я собираюсь установить около 20 серверов с одним и тем же веб-приложением в нескольких местах, подключенных к их собственной локальной базе данных. Я буду обновлять веб-приложения удаленно (возможно, с помощью диспетчера пакетов Debian), и я уверен, что в конечном итоге потребуется обновить схемы базы данных. Поскольку каждый сервер может в конечном итоге использовать разные версии веб-приложения, мне нужен способ применить добавочные изменения к серверам.
Я думаю, что-то вроде этого. Давайте начнем с database.schema.1
как исходного выпуска базы данных и предположим, что это число увеличивается с каждой новой версией схемы. В конечном итоге я могу получить database.schema.17
в качестве текущей версии. Для новой установки это будет схема для установки. Мне кажется, что мне нужны последовательные переводы, такие как database.translation.1.2
, которые конвертируют database.schema.1
в database.schema.2
, database.translation.2.3
для преобразования от 2 до 3 и т. Д. До 17. Кажется, что всякий раз, когда я меняю схему, мне нужно в alter
базу данных, но, возможно, мне нужно запустить какой-нибудь сценарий для update
данных, которые могут быть выполнены с помощью SQL, но для этого может потребоваться внешний не SQL-скрипт.
Как правильно организовать все эти файлы? Как автоматически применить эти обновления к схеме? Где я могу хранить номер текущей версии схемы?