데이터베이스가 일관성이 없는지 테스트 할 수 있습니까?


18

우리는 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

답변:


2

샌드 박스 프로젝트에 대한 설명을 작성하면서이 작업을 수행하기 위해 샌드 박스 프로젝트를 실행했습니다.

http://drupal.org/sandbox/anton_krechetov/1345066

현재 Drupal 6에서만 작동하며 2011 년 11 월 이후 커밋이 없었지만 유망한 것으로 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.