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.


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.


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.


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

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


5

Der Inhalt Ihres Inhaltstyps wird in field_data_bodyund in field_revision_bodyTabellen gespeichert .


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.


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.


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.