2009-10-07 2 views
0

RPM, похоже, очень хорошо проверяет зависимости и обрабатывает отдельные обновления файлов, но какова наилучшая практика для обработки накопительных обновлений, скажем, реляционной базы данных в нескольких версиях?Технология RPM для обработки накопительных обновлений?

Например, у вас есть продукт Foo с версиями 1.2.1, 1.2.2, 1.2.3 и 1.3.0. В каждом из них произошли изменения схемы базы данных, требующие сценариев обновления SQL. Выполнение каждого сценария обновления в последовательности требуется для перехода к текущей версии схемы.

Скажите, что у клиента установлен 1.2.2 и он хочет обновиться до 1.3.0. Как структурировать пакет RPM так, чтобы у вас были доступные сценарии и выполнялись правильные сценарии обновления для базы данных? В этом случае вы должны выполнить сценарии обновления для 1.2.3 и 1.3.0, но не для версий 1.2.1 или 1.2.2. поскольку они предположительно уже выполнены.

Один из вариантов - потребовать обновления каждой промежуточной версии в последовательности, заставляя пользователя в этом примере обновиться до 1.2.3 до 1.3.0. Это кажется менее оптимальным. Кроме того, это, вероятно, должно быть «принудительно» через внешний процесс, поскольку я не вижу ничего в файле RPM SPEC, который бы это указал.

Есть ли какие-либо известные методы для этого? Немного о Googling не выставляли.

EDIT: «Известно», я имею в виду «проверенный и проверенный», а не теоретический.

ответ

0

Используйте подходящий инструмент для работы. Вероятно, RPM не является правильным инструментом. Что-то вроде Liquibase лучше подходит для этой задачи.