Мы все знаем, что Drupal на самом деле не поддерживает концепцию внешних ключей в базе данных, и, вероятно, никогда не будет 1 .
Мы также знаем, что модули могут делать неправильные вещи или что пользователи будут периодически делать сумасшедшие вещи, такие как
DELETE FROM node_revision
WHERE vid = 123
в попытке "держать базу данных в чистоте". Когда это происходит, перехватчики не запускаются, и в базе данных появляются потерянные данные. В основном, эти данные безвредны, но иногда они вызывают странное поведение и могут выявлять ошибки в коде.
Существуют ли приличные методы для определения наличия в вашей базе данных мертвых и / или противоречивых данных?
1 Drupal 7 Schema API поддерживает их для документирования , но не для принудительного применения.
Ответы:
Когда я писал описание для проекта песочницы, я наткнулся на проект песочницы:
http://drupal.org/sandbox/anton_krechetov/1345066
В настоящее время он работает только для Drupal 6, и с ноября 2011 года коммитов не было, но выглядит многообещающе.
источник