Показано с 1 по 4 из 4

Тема: Невозможно удалить модуль процессинга из-за "зависимостей"

  1. #1

    По умолчанию Невозможно удалить модуль процессинга из-за "зависимостей"

    Невозможно удалить модул(и) процессинга из-за "зависимостей", которых нет.
    Была старая интеграция с Vmmanager и ipmanager, уже 2 года как висят в виде мусора ибо невозможно удалить из-за каких-то там зависимостей, в подсказке говорится "Погадайте на картах Таро, чтобы узнать о данных зависимостях".
    Когда уже сделаете четкое сообщение что за зависимости? Ни клиентов, ни тарифов, ничего уже не осталось связанного.


    На 9 дебаге очень информативное сообщение:
    Apr 8 23:11:33 [42045:12573] db ERROR query error: Cannot delete or update a parent row: a foreign key constraint fails (`billmgr`.`ip`, CONSTRAINT `ip_ibfk_1` FOREIGN KEY (`ipmgr`) REFERENCES `ipmgr` (`id`))
    Вау...
    Тему данную затрагивали уже раз сто, что в багтрекере, что в пожеланиях, что на форуме, что в тикетах.
    Последний раз редактировалось Neolo; 09.04.2018 в 11:28.

  2. #2
    Support team Аватар для Dasha
    Регистрация
    03.11.2011
    Сообщений
    4,499

    По умолчанию

    Здравствуйте. Ошибку MySQL возвращает. Таблица ip имеет сущности, связанные таблицей с ipmgr .

  3. #3

    По умолчанию

    Цитата Сообщение от Dasha Посмотреть сообщение
    Здравствуйте. Ошибку MySQL возвращает. Таблица ip имеет сущности, связанные таблицей с ipmgr .
    Вы ничем не помогли, я и так вижу что "ip" за висит от "ip_ibfk_1" и/или "ipmgr" или наоборот. И что это значит? Что это за меню в биллинге?

  4. #4

    По умолчанию

    С помощью поддержки в тикете, отследил зависимости через БД и удалил старые обработчики vmmanager. Структура интеграции конечно оставляет желать лучшего.

    Alexander

    Возможно осталась какая-то информация в самой БД об услугах, получить ID таких услуг можно с помощью запроса:
    select id from item where processingmodule=<ID обработчика>;
    затем
    select id from ip where item in (<список id полученных выше>);
    а после произвести удаление таких записей.


    Так же есть способ прямого удаления из БД в обход зависимостей, но использовать его не рекомендуется, однако в некоторых случаях информация о ключах может быть не верной в самом mysql (записи могут отсутствовать, а mysql всё равно сообщит, что присутствует foreign key). Есть специальный запрос в mysql, отключающий проверку:
    SET foreign_key_checks = 0;
    После чего удаление обработчика станет возможным не смотря на наличие дочерних сущностей, но при этом необходимо понимать, что если произвести такое удаление записи, а дочерние элементы останутся, то возникнет проблема в работе BILLmanager в большей или меньшей степени, поэтому такое действие необходимо выполнять на свой страх и риск. А после можно снова включить проверку, с помощью запроса:
    SET foreign_key_checks = 1;

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •