Zabbix: обновление 5.0.40 до 7.0

Есть задача: обновить систему мониторинга Zabbix с действующей версии 5.0.40 до 7.0 (да, пока RC, но "вот вот" же, да и пока разберусь - зарелизится, вероятно).

В качестве СУБД исходной системы 5.0.40 используется PostgreSQL 12 с расширением TimescleDB 1.7.2. С обновлением БД разобрался (очень помог @Мелкий - огромное "Спасибо!").

Решил не перескакивать через версию, а вначале до 6.0, а потом уже 7.0.

Но появилась проблема на следующем этапе: при первом запуске Zabbix более новой версии он обновляет БД и вот тут появляется ошибка:

  7903:20240530:233007.185 completed 35% of database upgrade
  7903:20240530:233007.190 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ОШИБКА:  ограничение "c_widget_1" в таблице "widget" не существует
 [alter table widget drop constraint c_widget_1]
  7903:20240530:233007.191 database upgrade failed on patch 05030090, exiting in 10 seconds

Не понимаю, с чем точно проблема и как можно решить. Вероятно нет объекта, который обновление хочет удалить, но почему нет - неясно. Действующий Zabbix в работе - претензий к нему нет.

Обе версии - LTS.


Ответы (1 шт):

Автор решения: Fomalhaut

Поискал в пакете zabbix-server-pgsql-5.0.40-1.el7.x86_64.rpm скрипты, которые создают структуру БД при первом запуске, нашёл соответствующий скрипт и применил:

ALTER TABLE ONLY widget ADD CONSTRAINT c_widget_1 FOREIGN KEY (dashboardid) REFERENCES dashboard (dashboardid) ON DELETE CASCADE;

После этого обновление прошло без проблем.

→ Ссылка