私は Play Evolutions を使い始めたばかりで、なぜ失敗して DB が一貫性のない状態のままになるのかを理解するのはかなり難しいと思います。
Dev モードでは、デフォルトの HTML ページにエラーが表示されますが、どのステートメントが失敗したかは示されません。この特定のアプリケーションでは、JSON を返す REST API しか持っていないため、HTML エラーは適切ではないため、これも問題です。私は独自のエラーハンドラーを持っているので、おそらく最終的に一致しExceptionAttachment
てコンテンツ/スクリプトを自分で引き出し、JSON エラー応答でそれをエスケープします。ただし、これを PROD の実際のユーザーに戻したくないので、これは DEV モードでのみです。
さらにイライラするのは、失敗したときにステートメントをログに記録しないことです。ドライバーのログを有効にすることはできますが、障害が発生してからログを有効にするのは遅すぎます。
進化が失敗したときにログでより具体的なエラーを取得する方法はありますか?