Nested sets error: INSERT INTO cms_menu
Подскажите, плиз, как правильно побороть ошибку при вставке нового пункта меню. версия движка 1.8, было проведено обновление с 1.7
Тект ошибки: Nested sets error: INSERT INTO cms_menu (parent_id, NSLeft, NSRight, NSLevel, ordering, NSDiffer) VALUES (1, 14, 15, 1, 7, '')
такое ощущение, что название пункта не схватывает, т.к. последнее значение — ''
Судя по ошибке из базы данных, в поле 'menu' должно быть что-то введено, так как оно обязательное.
Для разработчиков: ошибка вылетает после выполнения запроса перед строчкой 331 в файле includes\nestedsets.php
Что советуете сделать? Убрать обязательность поля, или что-то вводить в поле menu?
Вполне возможно, что при создании таблицы часть полей становится обязательными, что не предусмотрено кодом CMS.
В моём случае это поля: menu, title, link, component, published, template, access_list, iconurl и NSIgnore.
ALTER TABLE `cms_menu` CHANGE `menu` `menu` VARCHAR( 200 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT 'mainmenu', CHANGE `title` `title` VARCHAR( 200 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '', CHANGE `component` `component` VARCHAR( 100 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '', CHANGE `published` `published` INT( 11 ) NULL , CHANGE `template` `template` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '', CHANGE `access_list` `access_list` TINYTEXT CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL , CHANGE `iconurl` `iconurl` VARCHAR( 100 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '', CHANGE `NSIgnore` `NSIgnore` INT( 11 ) NULL
Ну это годится, если CMS свежая) А чтобы данные не терять, можно проапдейтить поля.удалить таблицу меню и выполнить запрос на создание таблицы заново.