オープンソースの SQL Server DB 比較ツールはありますか?[閉まっている]
-
09-06-2019 - |
質問
私は SQL Server 2005 をデータ ストアとして使用するオープン ソース プロジェクトに取り組んでいます。DB をあるバージョンから別のバージョンにアップグレードできるようにするための差分スクリプトを生成するには、DB 比較ツールが必要です。
変換スクリプトを生成するオープン ソースまたは無料の SQL Server DB diff ツールはありますか?
解決
Open DBiff は良い仕事をしていると思います。これは簡単で、SQL Server 2005/2008 で動作します。
ただし、変更スクリプトを生成するだけです。それ以上でもそれ以下でもありません。
他のヒント
昨日気づいたCodePlexについて DbDiff (http://www.codeplex.com/OpenDBiff)試してみるのもいいかもしれません。Sql2005と2008をサポートしていますが、試していません。
現金を出して入手することをお勧めします Red Gate の SQL 比較 このツールは優れた仕事をし、データベースを Visual Studio データベース プロジェクトと比較してアップグレード スクリプトを生成することもできます。速くて使いやすく、うまく機能します。アップグレード スクリプトもかなりの品質です。
そんなに高価なものではありません。おそらくあなたの時間よりも安いでしょう。自分の時給がいくらなのか、オープンソース ツールを調査して機能させるのに何時間かかるのか (そしてすでに費やした時間は何時間なのか) を考えて、それらを掛け合わせてください。これが「無料」ツールの実際の費用であり、多くの場合、商用ツールよりも大幅に高額になります。
オープンソースではありませんが、(ビールと同様に)無料です。 Sql Effects Accord (別名 Clarity) コミュニティ エディション
AdeptSQL Diff と DataDiff は素晴らしい製品で、RedGate よりもはるかに安価で、はるかに簡素化された UI を備えており、これで処理できないシナリオにはまだ遭遇したことがありません。
アロハ
試してみてはいかがでしょうか SqlDbDiff. 。変更スクリプトを生成できます。無料版でも十分な機能を果たします。
xSQL バンドル (xSQL データ比較と xSQL オブジェクト比較) を試してみた人はいますか?私たちの場所ではDBの差分のみを使用しており、同期は使用していないため、同期については言えませんが、差分とレポートは悪くありません。
また、OpenDBDiff にはスピンオフもありますが、どちらが優れているかはわかりません - http://code.google.com/p/sql-dbdiff/
ここで言及されている無料/オープンソース DB diff ツールのいずれかが、差分と同期を自動化するためのスクリプト化可能な/コマンド ライン インターフェイスを提供しているかどうか知っている人はいますか?
xSQL ツールを調べてみました。コマンド ライン アクセスは提供されていますが、残念ながら、差分結果を (レポート) ファイルにエクスポートするためのスクリプト可能なコマンドはありません。
これはあなたが望むものではありませんが、postgres に関してこれを見つけました。
http://mbk.projects.postgresql.org/
適用する差分は生成されませんが、テーブルの新しいバージョンの完全なダンプを以前のバージョンとマージできます。
うーん、私が知っているものはありません。いつでも定義を SQL として取得して、それらに対して diff ツールを実行できますが、後部で少し面倒です。
おそらくこれに対する最善の解決策は、ある種の「移行」ツールを使用することです。これにより、データベース定義をコードと一緒に保持したり、バージョン管理したりできます。
アップデート
Sourceforgeで私は見つけました Whiz SQL 構造の比較 この説明では:Whiz は、2 つの MS-SQL Server データベース間の違いを見つけるのに役立つデータベース差分ユーティリティです。また、あるデータベースから別のデータベースへの変更を更新する SQL スクリプトを生成することもできます。
しかし、これまでうまく機能させることができませんでした...
SQL デルタと SQL 比較の両方があります。それぞれに長所がありますが、それぞれに弱点もあり、それが非常に厄介です。
SQL デルタは比較の際に一部のトリガーを見逃し、アクション リストにないアクションを実行したり、実行してほしくないアクションを実行したりすることがあります。それはかなりの時間を費やして発見されました。
SQL Compare はトリガーを捕捉しますが、トリガーはテーブル リスト内に埋め込まれます。大規模なデータベースでは、各テーブルを調べてそれらを選別することを意味します。ツールが私たちのために隔離すべき何か。繰り返しますが、かなりの時間的コストがかかります。
少し遅れましたが、コードプレックス上に本当に単純なプロジェクトをリリースしました。
2 つの接続文字列を入力 (または構築) すると、すべてのテーブル、ビュー、ストアド プロシージャが比較されます。