Skip to main content

Ошибка MultipleObjectsReturned при обновлении ПМ 4.3 → 4.4


title: Ошибка MultipleObjectsReturned при обновлении ПринтМенеджер 4.3 → 4.4 slug: ts-multipleobjectsreturned-pri-obnovlenii tags: [обновление, MultipleObjectsReturned, RuleAction, БД, 4.3, 4.4] domain: Troubleshooting type: Troubleshooting audience: partner-engineer product_versions: "4.3, 4.4" status: ready related_components: [ПринтМенеджер] related_pages:

  • kak-obnovit-printum

Ошибка MultipleObjectsReturned при обновлении ПринтМенеджер 4.3 → 4.4

Симптомы

Обновление ПринтМенеджер с 4.3 на 4.4 завершается ошибкой таймаута. В логах установки:

__fake__.RuleAction.MultipleObjectsReturned:
get() returned more than one RuleAction -- it returned 2!

Система не обновляется, откатывается в предыдущее состояние.


Причина

В таблице print_rules_ruleaction БД ПринтМенеджер есть дублирующиеся записи с одинаковым action_type. При миграции на 4.4 скрипт ожидает одну запись — получает две, падает.

Дубли появляются при обновлении с версий 4.2 и ниже. На чистых установках 4.3 не воспроизводится.


Диагностика

Воспроизвести на тестовом стенде не всегда возможно — проблема зависит от истории обновлений конкретного инстанса.

Признак: обновление зависает на этапе миграций ПринтМенеджер, затем завершается с таймаутом и ошибкой MultipleObjectsReturned.


Решение

Самостоятельно не устраняется. Требует удаления дублей из БД ПринтМенеджер вручную.

Передать в ТП:

  • Версии М и ПринтМенеджер до обновления.
  • Логи установки (install.log на сервере ПринтМенеджер).
  • Подтверждение, что система обновлялась с версий 4.2 или ниже.

ТП предоставит команды для удаления дублей из таблицы print_rules_ruleaction. После этого обновление повторяется стандартным способом.


Как проверить результат

Обновление завершается без ошибок таймаута. В панели администратора ПринтМенеджер отображается версия 4.4.x. Правила печати работают корректно.


Когда эскалировать

Сразу — проблема не устраняется без вмешательства в БД.


Связанные страницы