2009-08-16 6 views
2

노드 및 노드 개정에 값을 추가하려고 시도했지만 여전히 노드 데이터가 표시되지 않습니다. 따라서 분명히 더 많은 데이터가 다른 곳에 저장됩니다. 기본적으로 새 노드를 만들 때 어떤 테이블이 영향을 받는지 알고 싶습니다.Drupal은 어디에서 NODE 데이터를 저장합니까?

+0

CCK를 사용하고 있습니까? – ceejayoz

+1

Drupal은 성능 향상을 위해 중간 렌더링 결과 캐싱을 많이합니다. 데이터베이스를 직접 변경하면 캐시를 무효화하고 기술적으로 오래된 페이지를 보는 로직을 우회 할 가능성이 있습니다. * 사이트 구성 *, * 성능 *로 이동 한 다음 * 캐시 된 데이터 지우기 *를 눌러 테스트하십시오. – Bevan

답변

6

만약 당신이 단지 똑바로 드루팔 (Drupal) 노드를 사용한다면, 그것은 모두 node_revision입니다. 거기에 텍스트를 추가했지만 나타나지 않았다면 잘못된 개정에 추가했을 것입니다. vid 값이 node 테이블에있는 노드의 vid과 일치하는지 확인하십시오.

CCK를 사용하여 Drupal 노드 유형에 필드를 추가하는 경우 시스템에 CCK 필드를 추가 할 때 동적으로 생성되는 테이블 content_type_*content_field_*에 CCK 데이터가 저장됩니다. 이들은 다시 nidvid 값을 통해 노드에 연결됩니다.

+0

문제는 VID입니다. 고맙습니다! VID는 무엇입니까? – coderama

+0

'vid'는 리비전 ID입니다. 노드 개정판을 사용 가능하게하면, 역사적인 목적으로 노드 본문의 이전 버전을 계속 추적합니다. – ceejayoz

2

Drupal의 node_save를 사용하여 프로그래밍 방식으로 노드를 만드는 이유는 무엇입니까? api.drupal.org에서 찾아보십시오.

노드 정보는 node 및 node_revision에 저장됩니다. 이전 포스터가 말했듯이 CCK는 필드 데이터를 여분의 테이블에 저장합니다. 또한 추가 모듈은 데이터를 추가 테이블에 저장합니다. 그래서 node_save가 보통 가장 좋은 방법입니다.

콘텐츠 유형이 매우 단순한 경우 캐싱으로 인해 항목이 표시되지 않을 수 있습니다. 캐시를 지우지 않고 db에 데이터를 삽입하는 경우 Drupal은 캐시를 인식하지 못하고 캐싱이 켜져있는 페이지를 업데이트하지 않을 수 있습니다. 캐싱이 꺼져 있어도 일부는 일반적으로 캐쉬되기 때문에 캐쉬를 지우고 도움이되는지 확인하십시오.

관련 문제