[РЕШЕНО]Проблема при добавлении материала

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

Аватар пользователя WestSide WestSide 21 сентября 2016 в 15:52

Добрый день, уважаемые форумчане! Drupal 7.50. При попытке добавления материала возникает ошибка "
На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже." В логах следующая надпись:

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'vid' cannot be null: INSERT INTO {node} (vid, type, language, title, uid, status, created, changed, comment, promote, sticky) 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] => [:db_insert_placeholder_1] => page [:db_insert_placeholder_2] => ru [:db_insert_placeholder_3] => ДОМОДЕДОВСКАЯ [:db_insert_placeholder_4] => 6 [:db_insert_placeholder_5] => 1 [:db_insert_placeholder_6] => 1474462086 [:db_insert_placeholder_7] => 1474462086 [:db_insert_placeholder_8] => 1 [:db_insert_placeholder_9] => 0 [:db_insert_placeholder_10] => 0 ) в функции drupal_write_record() (строка 7361 в файле /home/host1494312/xn--b1afbybyn.xn--p1ai/htdocs/www/includes/common.inc).

Перерыл уже кучу ссылок по этой теме, в основном на английском. Понял, что можно решить проблему либо установкой какого-то патча, либо изменением значения vid в базе SQL. Но к сожалению подробных действий ни при первом способе (а также нужного патча), ни при втором я не нашёл... Помогите, пожалуйста!

Лучший ответ

Аватар пользователя WestSide WestSide 22 сентября 2016 в 16:21

Проблема решилась методом научного тыка и танцев с бубном... По совету Van'Denis отключал по модули по очереди, но это ничего не дало. Посмотрев сообщение об ошибке, я понял, что копать надо в сторону модуля node. Зашёл в папку с модулем на FTP, посмотрел все файлы на предмет нахождения в них слова "vid". В файле node.install нашёл такие строчки:

'vid' => array(
'description' => 'The current {node_revision}.vid version identifier.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
'default' => NULL,

Поменял FALSE на TRUE. Это также ничего не дало. Затем я опять начал выключать модули по очереди, и когда я выключил Variable example, то произошло чудо. Метериалы начали создаваться. Подумал сначала, что сработало только какое-то одно из этих условий, но проверив эту теорию убедился, что и Variable example должен быть выключен и 'not null' => TRUE должно быть. С трудом понимаю, в чём тут зависимость, ибо Друпал ещё только изучаю и всех тонкостей не знаю. Хорошо хоть получилось устранить проблему. Van'Denis, спасибо за наводку!

Комментарии

Аватар пользователя Van'Denis Van'Denis 21 сентября 2016 в 19:28

Здравствуйте WestSide,
Сделал запрос и бегло прошёлся по полученным результатам.
Проблема скорее всего заключается в обновление. Точнее у Вас что-то не обновлено. Проверьте и обновите все модули, БД и почистите кеш.

Аватар пользователя WestSide WestSide 22 сентября 2016 в 9:48

Доброе утро! Я смотрел "Отчёт о состоянии", там всё актуально. Также проверял обновления для всех модулей, новых обновлений нет... Запускал update.php, и там также нет новых обновлений. Возможно, что криво обновилось ядро? В таком случае можно попробовать обновить его заново?

Аватар пользователя WestSide WestSide 22 сентября 2016 в 16:21

Проблема решилась методом научного тыка и танцев с бубном... По совету Van'Denis отключал по модули по очереди, но это ничего не дало. Посмотрев сообщение об ошибке, я понял, что копать надо в сторону модуля node. Зашёл в папку с модулем на FTP, посмотрел все файлы на предмет нахождения в них слова "vid". В файле node.install нашёл такие строчки:

'vid' => array(
'description' => 'The current {node_revision}.vid version identifier.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => FALSE,
'default' => NULL,

Поменял FALSE на TRUE. Это также ничего не дало. Затем я опять начал выключать модули по очереди, и когда я выключил Variable example, то произошло чудо. Метериалы начали создаваться. Подумал сначала, что сработало только какое-то одно из этих условий, но проверив эту теорию убедился, что и Variable example должен быть выключен и 'not null' => TRUE должно быть. С трудом понимаю, в чём тут зависимость, ибо Друпал ещё только изучаю и всех тонкостей не знаю. Хорошо хоть получилось устранить проблему. Van'Denis, спасибо за наводку!