テーブルの特定のカラムが、テーブル内のすべてのローを値に設定する制約なしに更新されるレガシーPHPアプリケーションで、問題をデバッグしています。この動作は予期せぬものですので、エラーの原因を追跡するのにかなりの時間を費やしました。予期せぬmysqlクエリのトラブルシューティングのテクニック
背景:
- それは断続的な問題です。
- 見直し:
- 我々は
- アプリケーションはORM我々が試した何
を使用している(本番環境と同一である)私たちの開発環境でそれを再現することはできませんソースコード
- mysqlのbinログを確認する。これにより、誤ったデータが実際に表示されていた句のない単一のUPDATEクエリであることがわかりました。
- 追加のアプリケーションレベルのログを追加します。これにより、アプリケーションの理解が深まりましたが、発生したエラーを特定することができませんでした。
私の質問:なじみのないアプリケーションでは、一見、不正なクエリに直面したとき
、どのような技術あなたがそのクエリのソースを見つけるために使うのですか?
私はgrepを使用しています –
ORMは偽です、アップデートクエリをmysqlに送信する前にいくつかのログを試してください – ajreal