2010-01-25 4 views
1

У меня есть несколько узлов, которые я вручную написал в базу данных. (Не спрашивайте, почему это проще, чем другие варианты.) Они отображаются в списке содержимого по адресу http://www.domain.com/admin/content/node/overview. Однако, когда я перехожу на страницу этого узла (http://www.domain.com/node/2582/view, где 2582 - это нуль рассматриваемого узла), я получаю сообщение об ошибке страницы. Что может быть причиной этого?Drupal-6: Что случилось, этот узел?

Вот такой узел в базе данных (экспортируемого из PHPMyAdmin в XML)

<node> 
<!-- node table --> 
    <nid>2587</nid> 
    <vid>2588</vid> 
    <type>bout</type> 
    <language>en</language> 
    <title>the title 8</title> 
    <uid>0</uid> 
    <status>1</status> 
    <created>0</created> 
    <changed>0</changed> 
    <comment>0</comment> 
    <promote>0</promote> 
    <moderate>0</moderate> 
    <sticky>0</sticky> 
    <tnid>0</tnid> 
    <translate>0</translate> 
<!-- content_type_bout table --> 
    <vid>2588</vid> 
    <nid>2587</nid> 
    <field_fencer_uid>8</field_fencer_uid> 
    <field_touches_scored_value>5</field_touches_scored_value> 
    <field_touches_received_value>2</field_touches_received_value> 
    <field_meet_nid>2583</field_meet_nid> 
    <field_round_value>3</field_round_value> 
    <field_legacy_bout_value>0</field_legacy_bout_value> 
<!-- term_node table --> 
    <nid>2587</nid> 
    <vid>2588</vid> 
    <tid>29</tid> 
</node> 

ответ

0

Посмотрите хорошо для меня. Я иду на эту страницу, и он говорит, что доступ запрещен, но не страница не найдена. Я не знаю, нужно ли вам/просмотреть в конце URL-адреса или нет.

+0

просмотра узлов запрещено для пользователей Анон. Но когда я иду к нему, с разрешения на просмотр, он говорит, что страница не найдена. –

2

В вашем примере nid равен 2587, а vid (идентификатор версии из таблицы ревизий) - 2588. Теперь это может быть ОК, если вы используете ревизии и сам узел 2587 или какой-то более старый узел обновляется один раз уже - в противном случае это может быть проблемой, так как без каких-либо изменений, когда-либо созданных, оба должны быть одинаковыми.

Итак, вы должны проверить записи в своей таблице ревизий - каждый узел должен иметь по крайней мере одну соответствующую запись (node_nid == revision_nid) там, где vid равен или больше, чем nid.

Если вы вставляете новые узлы вручную, вам также необходимо создать соответствующую ревизию, а vid установить на следующее доступное значение (произойдет автоматически, так как это серийный номер).

(Примечание: немного Отредактированный, так как первоначальный ответ содержал ошибочное предположение о нидь <> VID отношение)

+0

Хорошо, но что, если другой узел уже имеет vid из nid, который я хочу использовать? Означает ли это, что я должен продолжать увеличивать nid до тех пор, пока он не станет больше всех существующих нипов и всех существующих vids? –

+0

Oups - Нет, это не значит. Я был в ошибке, так как я думал, что таблица ревизий имела объединенный первичный ключ nid и vid, но это только vid! Таким образом, новый узел (или новая ревизия существующего узла) просто получает следующий бесплатный vid. Будет отредактировать ответ соответственно. –

+0

Хорошо, отредактировано. Итак, теперь это просто сводится к тому, чтобы «убедиться, что вы создали правильные изменения для своих узлов», которые, как вам кажется, есть, так что, вероятно, это не преступник. Извините за путаницу:/ –

Смежные вопросы