2012-03-06 4 views
2

私の要件は、私は3つのデータベースのOracle、MySQL、PostGresqlを検討し、2つのデータベースのいずれかが共通のテーブル名を持つ共通のスキーマを持っていると仮定して、任意のデータベースにすることができる2つのデータベースをdiffしたいですが、異なる。テーブルは、異なる列または異なる列のデータ型などを持つことができます。どのように特定のDBでそれらの両方を等しくするために実行できるdiffクエリを生成できますか?私はschemacrawler(http://schemacrawler.sourceforge.net/how-to.html)に行っていましたが、DDLを生成するために使用できるAPIはありませんでした。このツールはスキーマやテーブルなどをクロールするのに適していますが、どのようにしてDDLをjavaで生成できるので、両方のデータベースを同じにすることができます。私は、Java APIを使用してデータベースのメタデータを取得することができますが、可能であればサンプルコードスニペットを貼り付けてください両方のデータベースを同等にする適切なDDLを生成するために使用することができます。javaを使用して任意のデータベースのテーブル列のDDLを生成するには?

答えて

0

DBSoloというツールを使用してスキーマを比較し、diff sqlを生成します。それは、しかし、Javaコードを使用していないスクリプトを介して呼び出されます。

私は個人的な仕事でliquibaseを使用しました。与えられた例はスクリプトであり、javaを使って統合するのは簡単です。

関連する問題