Ошибка сервера после удаления политики
Для версии 2.4
Проблема
В Термит версии 2.4 при удалении политики, которая использовалась хотя бы в одном отчёте (на вкладке Моделирование), возникает ошибка сервера. При попытке открыть вкладку Моделирование отчёты не отображаются, а в логе контейнера termit-broker-client фиксируется следующая ошибка:
EntityNotFoundException: Unable to find ru.orionsoft.termit.broker.model.entity.policy.Policy with id ...
Решение
Для решения проблемы:
-
Подключитесь к базе данных Postgres одним из двух способов:
-
на хосте БД с помощью команды:
psql -h localhost -U пользователь_бд -d имя_бд -W -
с другого хоста с помощью команды:
psql -h имя_хоста_бд -p порт_бд -U пользователь_бд -d имя_бд
-
-
Выполните SQL-скрипт:
WITH deleted_settings AS ( DELETE FROM effective_setting AS es USING policy AS p WHERE es.setting_policy_id = p.id AND p.deleted = true RETURNING es.effective_policy ) DELETE FROM effective_policy AS ep WHERE ep.id IN ( SELECT DISTINCT ds.effective_policy FROM deleted_settings AS ds WHERE ds.effective_policy IS NOT NULL );В результате все отчёты моделирования, содержащие удалённые политики, будут удалены.