Drupal 7 Redirect - ошибка при программном сохранении нод

Главные вкладки

Аватар пользователя Sun-fire Sun-fire 27 мая 2011 в 13:21

На сайте установлен модуль Redirect
Также на сайте есть самописный модуль обновления актуальности контента с ERP, который изменяет значения нод, и сохраняет их с помощью node_save().

До установки модуля Redirect все работало нормально, но после начались ошибки следующего типа:

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '7ALrnuRf4WtsNyPXBenLsTxhZkHBaY1EHOoTufxIU58' for key 'hash': INSERT INTO {redirect} (hash, type, uid, source, source_options, redirect, redirect_options, language, status_code, count, access) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10); Array ( [:db_insert_placeholder_0] => 7ALrnuRf4WtsNyPXBenLsTxhZkHBaY1EHOoTufxIU58 [:db_insert_placeholder_1] => redirect [:db_insert_placeholder_2] => 0 [:db_insert_placeholder_3] => catalog/coolingstand/podstavka-kuler-dlya-noutbuka-antec-15-notebook-cooler-designer-ventilyator-1sht-110mm-800-rpm-42mm-notebook-cooler-designer [:db_insert_placeholder_4] => a:0:{} [:db_insert_placeholder_5] => node/5379 [:db_insert_placeholder_6] => a:0:{} [:db_insert_placeholder_7] => uk [:db_insert_placeholder_8] => 0 [:db_insert_placeholder_9] => 0 [:db_insert_placeholder_10] => 0 ) в drupal_write_record() (рядок 6776 із .../includes/common.inc).

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

Вопрос: как исправить описанный косяк? На каком этапе происходит вызов обновления редиректа? Реализаций hook_node_save(), hook_node_update() и других подходящих по смыслу функций в исходниках redirect'а не нашел. Кто уже сталкивался с этой проблемой?