データベースをテストして、一貫性がないかどうかを確認できますか?


18

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
ニック

回答:


2

サンドボックスプロジェクトの説明を書いているときに、これを行うためにサンドボックスプロジェクトに出くわしました。

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

現在、Drupal 6でのみ機能し、2011年11月以降コミットはありませんが、有望に見えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.