우리는 Drupal이 데이터베이스에서 외래 키 의 개념을 실제로 지원하지 않으며 , 절대로 1을 하지 않을 것임을 알고 있습니다.
우리는 또한 모듈이 옳은 일을하지 않거나 사용자가 주기적으로 다음과 같은 미쳤던 일을한다는 것을 알고 있습니다
DELETE FROM node_revision
WHERE vid = 123
"데이터베이스를 깔끔하게 유지"하려는 노력으로 이 경우 후크가 실행되지 않고 데이터베이스에 고아 데이터가 있습니다. 대부분이 데이터는 무해하지만 때로는 이상한 행동을 일으키고 코드에 버그가 발생할 수 있습니다.
데이터베이스에 죽은 데이터 및 / 또는 일치하지 않는 데이터가 있는지 여부를 감지하는 적절한 방법이 있습니까?
1 Drupal 7 Schema API 는 문서화를 지원 하지만 시행하지는 않습니다.
나는 당신이 "Drupal 내에서 괜찮은 방법"을 의미한다고 가정합니까? 아니면 외부 도구에 열려 있습니까?
—
iconoclast
이상적으로 Drupal 내에서는 모든 것이 열려 있습니다. Drupal 도구를 계획하기 시작했지만 얼마나 멀리 갈지 모르겠습니다.
—
mpdonadio
이러한 데이터를 찾기 위해 SQL 쿼리 세트로 문제점을 줄일 수 있습니까? 멋진 Drupal UI로 사용하기 쉬운 도구를 작성하지 않고 수동으로 쿼리를 발행하는 MySQL 클라이언트에 앉아 있다면 어떻게 이러한 불일치를 찾을 수 있습니까?
—
iconoclast
쿼리는 실제로 문제가되지 않습니다. 쿼리 할 테이블과 조인 할 키를 더 잘 알고 있습니다. 필자의 논문 아이디어는 Schema API를 사용하여 모든 테이블을 가져온 다음 쿼리를 작성할 수 있는지 여부를 각 스키마에서 파악하는 것입니다. 이것은 결국 휴가 프로젝트 일 수 있습니다.
—
mpdonadio
Btw, 마지막으로 D8에서 일부 FK 지원 : drupal.org/node/911352
—
Nic