Drupalは外部キーの概念を実際にサポートしていないことは誰もが知っています。データベースに、そしておそらく決して1。
また、モジュールが正しいことをしない可能性があること、またはユーザーが定期的に次のようなおかしなことをすることもわかっています。
DELETE FROM node_revision
WHERE vid = 123
「データベースを整理する」ための努力。これが発生すると、フックは実行されず、データベースには孤立したデータがあります。ほとんどの場合、このデータは無害ですが、時には奇妙な動作を引き起こし、コードのバグを引き起こす可能性があります。
データベースに死んだデータや一貫性のないデータがあるかどうかを検出するための適切な方法はありますか?
1 Drupal 7スキーマAPI は、ドキュメント化のためにそれらをサポートしていますが、強制ではありません。
私はあなたが「Drupal内からの適切な方法」を意味すると思いますか?または、外部のツールを使用していますか?
—
iconoclast
理想的には、Drupal内ですが、私は何に対してもオープンです。Drupalツールの計画を開始しましたが、それがどこまで進むのかわかりません。
—
mpdonadio
このようなデータを見つけるために、問題を一連のSQLクエリに減らすことができますか?便利なDrupal UIを備えた使いやすいツールを構築しておらず、代わりに手動でクエリを発行するMySQLクライアントに座っている場合、どのようにそのような矛盾を見つけるでしょうか?
—
iconoclast
クエリは実際には問題ではありません。どのテーブルを照会し、どのキーを結合するかをもっと知る必要があります。私の論文のアイデアは、Schema APIを使用してすべてのテーブルを取得し、クエリを作成できるかどうかを各スキーマから把握することです。これは私にとって休日のプロジェクトになるかもしれません。
—
mpdonadio
ところで、D8で最終的にいくつかFKのサポートのように見える:drupal.org/node/911352
—
ニック