Восстановление внешних ключей нашло ссылки на удалённые записи
«'<Колонка>' - FAILED» при восстановлении внешних ключей командой --restore-fk во время обновления Directum RX с версии 4.6 и ниже: в таблице есть строки со ссылками на удалённые записи. Как найти и исправить.
Что это значит
При обновлении со старых версий Directum RX утилита восстанавливает внешние ключи между таблицами. Если в таблице есть строки, где поле ссылается на уже удалённую запись, ключ создать нельзя, и утилита пишет имя таблицы и колонки с пометкой FAILED, например Sungero_Commons_City, 'Region' - FAILED.
Как проверить
Найти строки с битыми ссылками в указанной таблице. Для примера с городами и регионами:
SELECT c.id, c.region FROM sungero_commons_city c
LEFT JOIN sungero_commons_region r ON r.id = c.region
WHERE c.region IS NOT NULL AND r.id IS NULL;
Имена таблиц и колонок берите из сообщения.
Что сделать
- Восстановить удалённые записи или перепривязать ссылки на существующие.
- Повторить восстановление ключей командой из справки вендора:
./do.sh dt run --command="-n \"Service User\" -p <пароль> --restore-fk"
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать