私はOracleからPostgreSQLへの移行プロジェクトに携わっています。Oracle構文からPostgreSQLに変換された多数のクエリのテストを自動化する方法を探しています。データは正常に移行されたため、確認する必要はありません。私は、PerlやPythonを使ってゼロからソリューションをハックすることができますが、より簡単な方法があるかもしれません。私はデータベーステストフレームワーク、lke Test :: DBUnutまたはpgTapを見ていましたが、ユーザが検証するための結果を提供していると仮定しています。私の場合、これらは私たちが移行しているデータベースから得られたものです。問題は、古い(Oracle)データベースと新しい(PostgreSQL)データベースに対してクエリを実行し、結果を得て比較し、その差異とプロセスで発生する可能性のあるエラーを強調表示する既存のデータベース固有のツールまたはテストフレームワークですか?複数のデータベースシステムに対するSQLクエリのテスト
答えて
対応するクエリを異なるスキーマ(1つのOracleと他のPostgreSQL)で実行するJUnitプロジェクトを作成する方法はありますか?
また、プロジェクトごとにSQL Pluginという2つの単純なMavenプロジェクトを作成することもできます(それぞれのプロジェクトでは、同じ順序でpom.xmlにペーストできます)。 Maven(Hudson?)をサポートする継続的な統合サーバーを使用してこれらのテストを後で自動化し、スケジュールされた実行を設定することができます。
幸運を祈る!
私は両方のデータベースに対してクエリを実行し、python psycopg2とcx_oracleを使用して結果を収集するためのカスタムツールを作成しました。それらを比較することは、各行のハッシュを計算し、postgresql行のハッシュにOracle行が存在するかどうかをチェックすることです。落とし穴のカップル:のpythonへのOracle/PostgreSQLのから変換するとき
浮動小数点数は精度を失うことができます。ドライバーでタイプ固有のフックを使用して(ドキュメンテーションを参照)、フロートではなく10進数に変換してください。
両方のデータベースから一度に1つの行を読み込み、その値を比較して移動するのは魅力的です。ただし、SQL結果が明示的に(ORDER BYで)順序付けされていない限り、これは機能しません。残念なことに、結果をすべて一度に読み取ると、たくさんの行を生成するクエリに多くのメモリが必要になります。
等しい結果をもたらすクエリ と、両方のデータベースで0行を生成するクエリとを区別する必要があります。後者は検査された である必要があり、クエリにパラメータが含まれている場合、その値は に変更する必要があります。
- 1. 複数のSQLクエリでのパフォーマンスのテスト
- 2. 複数のバージョンのSQL Serverに対するソフトウェアのテスト
- 3. 複数のテーブルに対するMYSQLI SQLクエリが失敗する
- 4. 複数のSQLクエリ
- 5. SQLクエリのヘルプ - 複数の選択テストの採点
- 6. mysqlデータベースの複数(1対多)テーブルのSQLクエリ
- 7. SQLクエリ複数のテーブル
- 8. 複数のsql更新クエリ
- 9. SQLクエリ複数の結合
- 10. SQLクエリ - 複数のキーワードを検索する複数のキーワード
- 11. 1つの複雑なクエリ対複数の単純なクエリ
- 12. SQL Join複数の1対多クエリをクエリしますか?多対多の場合
- 13. MS SQL:複数行の基準にクエリ
- 14. 複数のプロパティに対する不等式クエリによるページング
- 15. テーブルの列に対するSQLクエリ....(Oracle)
- 16. Build-automation-sbt:複数の依存関係に対するコンパイル/テスト
- 17. 複数のwhere句に対するインデックスの影響SQL
- 18. 複数のテーブル/レコードのSQLクエリ
- 19. アクセス更新クエリのSQL複数の値
- 20. SQLクエリの複数の複数の列(SQL 2005)などのカラムの値
- 21. sql - 複数の値をテストする関数
- 22. 複数のタイプに対してQuickCheckプロパティをテストしますか?
- 23. SQL動的クエリをテストするには?
- 24. 複数のタクソノミーを持つWordpress SQLクエリ
- 25. 複数テーブルのSQLクエリ - オペレータで
- 26. SQLサーバー[クエリ+複数の結合条件]
- 27. カスタムポストタイプと複数カスタムフィールドのSQLクエリ
- 28. 複数のSQLクエリまたは結合?
- 29. SQLクエリは、サブクエリは複数行に
- 30. 簡単なPROLOGの問題:Prologデータベースに対して複数のクエリをどのようにテストしますか?
ありがとうございます。残念ながら、Javaは私の専門知識の範囲外です。 – alexk