Gdzie Drupal przechowuje zawartość ciała węzła?


Odpowiedzi:


38

Nie mam tutaj działającej instalacji drupala, ale zadałem sobie to pytanie kilka tygodni temu i znalezienie odpowiedzi zajęło trochę czasu.

O ile dobrze pamiętam, treść węzła jest przechowywana w tabeli używanej do przechowywania „wersji” węzła. Nie jestem pewien, jak się nazywa, ale powinno to być coś w rodzaju „rewizja węzła” lub „rewizja węzła”.


4
poprawny. to node_revisions.body

Żeby dodać ... celem oddzielenia treści węzła jest umożliwienie twórcom tworzenia tylu różnych typów treści, ile tylko chcą, i posiadania tylko jednej tabeli zawierającej wszystkie id_węzła. Rewizje, które obejmują treść, znajdują się w osobnych tabelach.
Randell,

Link do strony webdevgeeks.com jest uszkodzony.
przeprogramowanie

Dla której wersji Drupala ta odpowiedź jest poprawna?
pazury

1
@ claws, ta odpowiedź jest dla Drupala 6, dla Drupala 7 pole ciała jest przechowywane w tabeli field_data_body.
Yogesh,

53

W Drupal 7 ciało zostało przeniesione do tabeli field_data_body.


2
W mojej witrynie Drupal 7 widzę treści swoich treści w tabelach „field_data_body” i „field_revision_body”.
przeprogramowanie

Jest to prawdą tylko wtedy, gdy masz typy zawartości zawierające pole treści (takie samo jak każde inne pole inne niż tytuł). Na przykład ankiety nie mają.
Scott Evernden,

1
Niezupełnie poprawne. Tekst główny jest przechowywany w valuekolumnie pola o nazwie body. To domyślnie są przechowywane w body_valuekolumnie field_data_bodytabeli. Jednak nic nie stoi na przeszkodzie, aby użyć danych, powiedzmy MongoDB do przechowywania danych w bodypolu (prawie nic: profil standardowy tworzy je w SQL, więc lepiej użyć minimalnego, jeśli chcesz użyć MongoDB, aby zapisać bolesną migrację później).

Jakie jest powiązanie między węzłem a field_data_body? Ta ostatnia nie ma kolumny nidlub vidkolumny (przynajmniej nie o tej nazwie)
pigułki przeciwwybuchowe

W polu field_data_body znajduje się kolumna entity_is, która jest odniesieniem do nid z tabeli węzłów
innowacyjny kundan


8

W Drupal 6 zawartość ciała węzła jest zapisywana w tabeli „Węzły_revisions” w polu „ciało”.

node_revisions.body

W Drupal 7 zawartość ciała węzła jest zapisywana w tabeli „field_data_body” w polu „body_value”. W przypadku poprawek treści zapisuje również dane w tabeli „field_revision_body” w polu „body_value”.

field_data_body.body_value

field_revision_body.body_value

W Drupal 8 zawartość ciała węzła jest zapisywana w tabeli „node__body” w polu „body_value”. W przypadku poprawek treści zapisuje również dane w tabeli „node_revision__body” w polu „body_value”.

node__body.body_value

wersja_węzła__body.body_value


5

Treść treść rodzaje organizm jest zapisany w field_data_bodyi field_revision_bodystoły.


2

Oto SQL, którego byś użył (klient 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';

Tak więc, odpowiedzią jest tabela „node_revisions” w Drupal 6.


2

W Drupal 7 ciało węzła znajduje się w body_data_body i field_revision_body. Nowe pola dodane za pomocą CCK (który jest dodany do rdzenia w Drupal 7) znajdują się w field_config i field_config_instance. W Drupal6 treść węzła jest przechowywana w rewizjach_węzła, a utworzone pola są zapisywane w polu_węzeł_ treści i instancja_węzła treści.


1

Utworzyłem kilka nowych typów treści, a dla nich treść lub opis trafiają do kolumny wartość_pola_tabeli tabeli, w content_type_<type_name>której type_nameznajduje się nazwa nowego typu treści.


1

W Drupal 7 jest on w polu field_revision_body .. jeśli opiszesz tę tabelę, zobaczysz tam kolumnę podsumowania treści i jej długi tekst.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.