この問題を抱えているのは私だけではないので、提案を探しています。
私たちはアプリケーションを Oracle で実行していますが、統合テストでは迅速なメモリ内テストのために h2 を使用しています。データベースはテストの開始時に DDL スクリプトから構築されています。
問題は、一部の DDL コマンドの使用/構文が Oracle と h2/hsqldb で異なることです。たとえば、今日、'grant select on ...' が Oracle のシーケンスでは機能するが、h2 のテーブルでしか機能しないことに気付くまで、しばらく時間を費やしました。
以前のプロジェクトでは、そのような誤ったコマンドを削除/変換するためのアダプターがありました。つまり、テスト データベースは、本番環境に実装するコードとはまったく異なるコードを実行していました。すべてが非常に徹底的に受け入れテストされていますが、特定の問題は開発サイクルのかなり遅い段階まで発見されない可能性があることを意味します.
私の最新のプロジェクトでは、私は同じ道を進んでいると感じています。
助言がありますか?Java/maven を使用しているため、適切なソリューションを歓迎します!