Wo speichert Drupal den Inhalt eines Knotens?

48

In der Knotentabelle finden Sie alles außer dem eigentlichen Körper. Wo finde ich diesen Nachrichtentext? Ich gehe davon aus, dass es irgendwo als Blob gespeichert wird.

Koderama
quelle
Um zu verstehen , in dem alle Felder eines Knotens gespeichert sind , in Drupal 7: siehe drupal.stackexchange.com/questions/68515/...
Klauen

Antworten:

38

Ich habe hier keine laufende Drupal-Installation, aber ich habe mir diese Frage vor ein paar Wochen gestellt, und es hat einige Zeit gedauert, bis ich die Antwort gefunden habe.

Wenn ich mich richtig erinnere, wird der Hauptteil des Knotens in der Tabelle gespeichert, in der die "Revisionen" des Knotens gespeichert werden. Ich bin nicht sicher, wie es heißt, aber es sollte so etwas wie "node_revision" oder "node_revisions" sein.

Pascal MARTIN
quelle
4
richtig. Es ist node_revisions.body
Nur zum Hinzufügen ... Der Zweck des Trennens des Knotenkörpers besteht darin, den Entwicklern zu ermöglichen, so viele verschiedene Inhaltstypen zu erstellen, wie sie möchten, und nur eine Tabelle mit allen Knoten-IDs zu haben. Überarbeitungen, die den Hauptteil enthalten, befinden sich in separaten Tabellen.
Randell
Der webdevgeeks.com-Link ist defekt.
Reprogrammierer
Für welche Version von Drupal ist diese Antwort richtig?
Krallen
1
@claws, diese Antwort gilt für Drupal 6, für Drupal 7 wird das Body-Feld in der Tabelle field_data_body gespeichert.
Yogesh
53

In Drupal 7 wurde der Body in die Tabelle field_data_body verschoben.

Freeman
quelle
2
Auf meiner Drupal 7-Site kann ich die Körper meiner Inhalte in den Tabellen "field_data_body" und "field_revision_body" sehen.
Umprogrammierer
Dies gilt nur, wenn Sie Inhaltstypen haben, die ein Textfeld enthalten (wie jedes andere Nicht-Titelfeld). Umfragen zum Beispiel haben keine.
Scott Evernden
1
Nicht genau richtig. Der Nachrichtentext wird in der valueSpalte eines aufgerufenen Feldes gespeichert body. Dies wird standardmäßig in der body_valueSpalte der field_data_bodyTabelle gespeichert . Nichts hindert Sie jedoch daran, MongoDB zu verwenden, um die Daten im bodyFeld zu speichern (fast nichts: Das Standardprofil erstellt sie in SQL, daher sollten Sie minimal verwenden, wenn Sie MongoDB verwenden möchten, um später eine schmerzhafte Migration zu speichern).
Was ist die Assoziation zwischen einem Knoten und field_data_body? Letzterer hat keine nidoder vidSpalte (zumindest nicht mit diesem Namen)
Explosion Pills
Es gibt eine Spalte entity_is in field_data_body, die eine Referenz von nid aus der Knotentabelle ist
innovativer Kundan
8

Dies ist die Tabelle "node_revisions" in Drupal 5.

Nir Levy
quelle
8

In Drupal 6 wird der Inhalt des Knotenkörpers in der Tabelle 'node_revisions' unter dem Feld 'body' gespeichert.

node_revisions.body

In Drupal 7 wird der Inhalt des Knotenkörpers in der Tabelle 'field_data_body' unter dem Feld 'body_value' gespeichert. Wenn Inhaltsrevisionen vorhanden sind, werden die Daten auch in der Tabelle 'field_revision_body' unter dem Feld 'body_value' gespeichert.

field_data_body.body_value

field_revision_body.body_value

In Drupal 8 wird der Inhalt des Knotenkörpers in der Tabelle 'node__body' unter dem Feld 'body_value' gespeichert. Wenn Inhaltsrevisionen vorhanden sind, werden die Daten auch in der Tabelle 'node_revision__body' unter dem Feld 'body_value' gespeichert.

node__body.body_value

node_revision__body.body_value

amitgoyal
quelle
5

Der Inhalt Ihres Inhaltstyps wird in field_data_bodyund in field_revision_bodyTabellen gespeichert .

Shan
quelle
2

Dies ist die SQL, die Sie verwenden würden (MySQL-Client):

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';

Die Antwort lautet also "node_revisions" in Drupal 6.

kiamlaluno
quelle
2

In Drupal 7 befindet sich der Knotenkörper in field_data_body und field_revision_body. Neue Felder, die mit CCK (das in Drupal 7 zum Core hinzugefügt wird) hinzugefügt wurden, befinden sich in field_config und field_config_instance. In Drupal6 wird der Knotenkörper unter node_revisions gespeichert und die erstellten Felder werden unter content_node_field und content_node_field_instance gespeichert.

snasim
quelle
1

Ich habe nur wenige neue Inhaltstypen erstellt, und für diese geht der Text oder die Beschreibung in die Spalte field_description_value der Tabelle, content_type_<type_name>in type_nameder der Name des neuen Inhaltstyps steht.

kiamlaluno
quelle
1

In Drupal 7 ist es in field_revision_body .. Wenn Sie diese Tabelle beschreiben, sehen Sie dort eine Spalte für Body summary und einen Langtext-Typ.

gatecrush
quelle