Где Drupal хранит содержимое тела узла?


48

В таблице узлов вы найдете все, кроме фактического тела. Где я могу найти этот основной текст? Я предполагаю, что это где-то хранится как капля.


Чтобы понять, где все поля узла хранятся в Drupal 7: см. Drupal.stackexchange.com/questions/68515/…
когти

Ответы:


38

У меня нет работающей установки drupal здесь, но я задавал себе этот вопрос пару недель назад, и потребовалось время, чтобы найти ответ.

Если я правильно помню, тело узла хранится в таблице, которая используется для хранения «ревизий» узла. Я не уверен, как его зовут, но это должно быть что-то вроде "node_revisions" или "node_revisions".


4
верный. это node_revisions.body

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

Ссылка на webdevgeeks.com не работает.
репрограммист

Для какой версии drupal этот ответ правильный?
когти

1
@claws, этот ответ для Drupal 6, для Drupal 7 поле body хранится в таблице field_data_body.
Йогеш

53

В Drupal 7 тело было перемещено в таблицу field_data_body.


2
На моем сайте Drupal 7 я вижу тела моего содержимого в таблицах "field_data_body" и "field_revision_body".
репрограммист

Это верно только в том случае, если у вас есть типы контента, которые включают поле тела (как и любое другое поле без заголовка). Опросы, например, не имеют.
Скотт Эверден

1
Не совсем правильно. Основной текст хранится в valueстолбце поля с именем body. Это по умолчанию хранится в body_valueстолбце field_data_bodyтаблицы. Однако ничто не мешает вам использовать, скажем, MongoDB для хранения данных в bodyполе (почти ничего: стандартный профиль создает их в SQL, поэтому лучше использовать минимальный, если вы хотите использовать MongoDB, чтобы сохранить болезненную миграцию позже).

Какая связь между узлом и field_data_body? Последний не имеет nidили vidстолбец (по крайней мере, с таким именем)
таблетки взрыва

В field_data_body есть столбец entity_is, который является ссылкой на nid из таблицы узлов
новаторский кундан


8

В Drupal 6 содержимое тела узла сохраняется в таблице «node_revisions» под полем «body».

node_revisions.body

В Drupal 7 содержимое тела узла сохраняется в таблице 'field_data_body' в поле 'body_value'. В случае наличия ревизий контента, он также сохраняет данные в таблице 'field_revision_body' в поле 'body_value'.

field_data_body.body_value

field_revision_body.body_value

В Drupal 8 содержимое тела узла сохраняется в таблице «node__body» в поле «body_value». В случае наличия изменений содержимого он также сохраняет данные в таблице 'node_revision__body' в поле 'body_value'.

node__body.body_value

node_revision__body.body_value


5

Ваши типы контента содержание тела сохраняется field_data_bodyи в field_revision_bodyтаблицах.


2

Это SQL, который вы бы использовали (клиент MySQL):

SELECT node.nid,node.vid,type,node.title, body 
FROM node join node_revisions ON node.nid = node_revisions.nid
WHERE node.title = 'some title';

Так что да, ответ - таблица "node_revisions" в Drupal 6.


2

В Drupal 7 тело узла находится в field_data_body и field_revision_body. Новые поля, добавленные с помощью CCK (который добавлен к ядру в Drupal 7), находятся в field_config и field_config_instance. В Drupal6 тело узла сохраняется в node_revisions, а созданные поля сохраняются в content_node_field и content_node_field_instance.


1

Я создал несколько новых типов контента, и для них тело или описание идут в столбец field_description_value таблицы, content_type_<type_name>где type_nameуказано имя нового типа контента.


1

В Drupal 7 он находится в field_revision_body .. если вы опишите эту таблицу, вы увидите столбец для сводки Body и его тип в длинном тексте.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.