Задача [AS42]: Изменение страницы обновления базы данных

Формулировка проблемы: во время одновременного внесения обновлений БД несколькими разработчиками возможна ситуация, когда для различных веток будет указан один номер обновления БД. Из-за этого могут возникать конфликты слияния веток.

Используется: Администрирование -> Обслуживание системы -> Управление БД

Решение: необходимо изменить принцип обновления БД: вместо единой версии БД выделять и применять отдельные классы (апдейты).

Требуется реализовать единый корневой конфигурационный xml-файл, где будут перечислены все апдейты по порядку. В нем должны быть указаны классы, содержащие сведения об обновлениях БД. Файл должен располагаться в модуле synergy-ejb, внутри каталога kz.arta.synergy.db.updates. Там же должны находиться классы, указанные в файле.

Классы, не указанные в конфигурационном файле, будут игнорироваться.

Сведения о наличии/отсуствии должны быть отображены на панели информации страницы "Управление БД". В случае наличия непримененных обновлений требуется выводить сообщение:

Ваша версия БД неактуальна.
Следующие обновления еще не применены:
%id% - %comment%
...
%id% - %comment%

Если в списке обновлений содержится более 5 обновлений, которые надо применить, то должны отображаться первые 5 (в порядке перечисления классов в конфигурационном файле). В этом случае требуется дополнительно отображать подпись: "и еще обновлений: %count%", где %count% равен общему количеству непримененных обновлений без учета отображенных в списке (илл. "Вид окна при наличии непримененных обновлений").

Рисунок 62. Вид окна при наличии непримененных обновлений

Вид окна при наличии непримененных обновлений

В случае невозможности применения обновлений БД должны быть выведены сведения возникших ошибках (илл. "Вид окна в случае ошибок во время обновления"):

%ГГГГ-ММ-ДД ЧЧ:ММ%: "Обновление прервано со следующей ошибкой: %текст_ошибки%

Рисунок 63. Вид окна в случае ошибок во время обновления

Вид окна в случае ошибок во время обновления

Обновления, произведенные до возникновения ошибки, считаются примененными. После возникновения ошибки процесс обновления останавливается, и оставшиеся обновления считаются непримененными.

Если все обновления, указанные в конфигурационном файле, применены в БД, то требуется выводить сообщение (илл. "Вид окна при отсутствии непримененных обновлений"):

Ваша версия БД актуальна

Рисунок 64. Вид окна при отсутствии непримененных обновлений

Вид окна при отсутствии непримененных обновлений