¿Dónde almacena Drupal el contenido del cuerpo de un nodo?

48

En la tabla de nodos, encontrará todo excepto el cuerpo real. ¿Dónde puedo encontrar este texto del cuerpo? Supongo que se está almacenando como una gota en alguna parte.

coderama
fuente
Para comprender dónde se almacenan todos los campos de un nodo en Drupal 7: consulte drupal.stackexchange.com/questions/68515/…
garras

Respuestas:

38

No tengo una instalación de drupal en ejecución aquí, pero me hice esta misma pregunta hace un par de semanas, y me tomó tiempo encontrar la respuesta.

Si no recuerdo mal, el cuerpo del nodo se almacena en la tabla que se usa para mantener las "revisiones" del nodo. No estoy seguro de cómo se llama, pero debería ser algo así como "node_revision" o "node_revisions".

Pascal MARTIN
fuente
44
correcto. es node_revisions.body
Solo para agregar ... el propósito de separar el cuerpo del nodo es permitir a los desarrolladores crear tantos tipos de contenido diferentes como quieran y tener solo una tabla que contenga todos los ID de nodo. Las revisiones, que incluyen el cuerpo, están en tablas separadas.
Randell
El enlace webdevgeeks.com está roto.
reprogramador
¿Para qué versión de drupal esta respuesta es correcta?
garras
1
@claws, esta respuesta es para Drupal 6, para Drupal 7 el campo del cuerpo se almacena en la tabla field_data_body.
Yogesh
53

En Drupal 7, el cuerpo se ha movido a la tabla field_data_body.

Hombre libre
fuente
2
En mi sitio Drupal 7, puedo ver los cuerpos de mis contenidos en las tablas "field_data_body" y "field_revision_body".
reprogramador
Esto es cierto solo si tiene tipos de contenido que incluyen un campo de cuerpo (igual que cualquier otro campo sin título). Las encuestas, por ejemplo, no tienen una.
Scott Evernden
1
No exactamente correcto. El texto del cuerpo se almacena en la valuecolumna de un campo llamado body. Esto por defecto se almacena en la body_valuecolumna de la field_data_bodytabla. Sin embargo, nada le impide usar, por ejemplo, MongoDB para almacenar los datos en el bodycampo (casi nada: el perfil estándar lo crea en SQL, por lo que es mejor usar un mínimo si desea usar MongoDB para guardar una migración dolorosa más adelante).
¿Cuál es la asociación entre un nodo y field_data_body? El último no tiene nido vidcolumna (al menos no con ese nombre)
Pastillas de explosión
Hay un colume entity_is en field_data_body que es referencia de nid de la tabla de nodos
kundan innovador
8

Es la tabla "node_revisions", en Drupal 5.

Nir Levy
fuente
8

En Drupal 6, el contenido del cuerpo del nodo se guarda en la tabla 'node_revisions' debajo del campo 'body'.

node_revisions.body

En Drupal 7, el contenido del cuerpo del nodo se guarda en la tabla 'field_data_body' en el campo 'body_value'. En caso de que haya revisiones de contenido, también guarda los datos en la tabla 'field_revision_body' en el campo 'body_value'.

field_data_body.body_value

field_revision_body.body_value

En Drupal 8, el contenido del cuerpo del nodo se guarda en la tabla 'node__body' bajo el campo 'body_value'. En caso de que haya revisiones de contenido, también guarda los datos en la tabla 'node_revision__body' en el campo 'body_value'.

node__body.body_value

node_revision__body.body_value

amitgoyal
fuente
5

El contenido del cuerpo de los tipos de contenido se guarda en tablas field_data_bodyy field_revision_body.

Shan
fuente
2

Este es el SQL que usaría (cliente 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';

Entonces sí, la respuesta es la tabla "node_revisions" en Drupal 6.

kiamlaluno
fuente
2

En Drupal 7, el cuerpo del nodo se encuentra en field_data_body y field_revision_body. Los nuevos campos agregados usando CCK (que se agrega al núcleo en Drupal 7) se encuentran en field_config y field_config_instance. En Drupal6, el cuerpo del nodo se almacena en node_revisions y los campos creados se guardan en content_node_field y content_node_field_instance.

snasim
fuente
1

He creado algunos tipos de contenido nuevos, y para ellos, el cuerpo o la descripción van a la columna field_description_value de la tabla content_type_<type_name>donde type_nameestá el nombre del nuevo tipo de contenido.

kiamlaluno
fuente
1

En Drupal 7 está en field_revision_body .. si describe esa tabla verá que hay una columna para el resumen del cuerpo y es un tipo de texto largo.

gatecrush
fuente