¿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.
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".
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.
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
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'.
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.
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.
Respuestas:
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".
fuente
node_revisions
.bodyEn Drupal 7, el cuerpo se ha movido a la tabla field_data_body.
fuente
value
columna de un campo llamadobody
. Esto por defecto se almacena en labody_value
columna de lafield_data_body
tabla. Sin embargo, nada le impide usar, por ejemplo, MongoDB para almacenar los datos en elbody
campo (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).field_data_body
? El último no tienenid
ovid
columna (al menos no con ese nombre)Es la tabla "node_revisions", en Drupal 5.
fuente
En Drupal 6, el contenido del cuerpo del nodo se guarda en la tabla 'node_revisions' debajo del campo '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'.
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'.
fuente
El contenido del cuerpo de los tipos de contenido se guarda en tablas
field_data_body
yfield_revision_body
.fuente
Este es el SQL que usaría (cliente MySQL):
Entonces sí, la respuesta es la tabla "node_revisions" en Drupal 6.
fuente
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.
fuente
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>
dondetype_name
está el nombre del nuevo tipo de contenido.fuente
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.
fuente