42

I'm working on an open source project that uses SQL Server 2005 as the data store. We need a DB compare tool to generate diff scripts to be able to upgrade a DB from one version to another.

Is there an open source or free SQL Server DB diff tool out there that generates a convert script?

4

12 に答える 12

17

Open DBiff はうまく機能すると思います。シンプルで、私は SQL Server 2005/2008 で作業しています。

ただし、変更スクリプトのみを生成します。それ以上でもそれ以下でもありません。

于 2009-02-13T16:36:40.773 に答える
12

CodePlex では、昨日DbDiff ( http://www.codeplex.com/OpenDBiff ) を試すことができることに気付きました。Sql2005 と 2008 をサポートしていますが、試していません。

于 2008-11-12T17:03:28.860 に答える
6

Red Gate の SQL Compareツールを購入することをお勧めします。このツールは優れた機能を備えており、データベースを Visual Studio データベース プロジェクトと比較してアップグレード スクリプトを生成することもできます。高速で使いやすく、うまく機能します。アップグレード スクリプトもまともな品質です。

それほど高価ではありません。おそらくあなたの時間よりも安いでしょう。時給がいくらか、オープンソース ツールを調査して機能させるのに何時間かかるか (および、すでに費やした時間) を考えて、それらを掛け合わせてください。これは、「無料」ツールの実際のコストであり、多くの場合、商用ツールよりも大幅に高くなります。

于 2008-11-12T17:56:46.723 に答える
5

オープン ソースではありませんが、無料です (ビールのように): Sql Effects Accord (別名 Clarity) Community Edition

于 2008-08-22T16:46:57.657 に答える
4

AdeptSQL Diff と DataDiff は素晴らしい製品であり、RedGate のものよりもはるかに安価で、UI がはるかに簡素化されています。これで処理できないシナリオにまだ遭遇したことはありません。

于 2009-10-27T17:33:12.347 に答える
3

アロハ

SqlDbDiffを試してみてください。変更スクリプトを生成できます。無料版は十分に機能します。

于 2008-12-17T12:37:13.293 に答える
1

xSQL バンドル (xSQL データ比較と xSQL オブジェクト比較) を試した人はいますか? 私たちの場所はDB差分のみを使用し、同期は使用しないため、同期については言えませんが、差分とレポートは悪くありません.

また、OpenDBDiff にはスピンオフがあり、どちらが優れているかはわかりません - http://code.google.com/p/sql-dbdiff/

ここで言及されている無料/オープン ソースの DB 差分ツールのいずれかが、差分と同期を自動化するためのスクリプト可能な/コマンド ライン インターフェイスを提供しているかどうかは誰でも知っていますか?

私は xSQL ツールを調べました。それらはコマンド ライン アクセスを提供しますが、残念ながら、差分結果を (レポート) ファイルにエクスポートするためのスクリプト可能なコマンドはありません。

于 2010-11-08T00:39:11.093 に答える
1

それはまさにあなたが望むものではありませんが、私はpostgresのためにこれを見つけました:

http://mbk.projects.postgresql.org/

適用する差分は生成されませんが、テーブルの新しいバージョンの完全なダンプを以前のバージョンとマージできます。

于 2010-11-30T10:15:57.953 に答える
0

アップデート

Sourceforgeで、Whiz SQL構造を見つけました。この説明と比較してください。Whizは、2つのMS-SQLServerデータベースの違いを見つけるのに役立つデータベース差分ユーティリティです。また、あるデータベースから別のデータベースへの変更を更新するSQLスクリプトを生成することもできます。

しかし、私はこれまでそれを機能させることに失敗しました...

于 2008-08-23T18:46:26.520 に答える
0

少し遅れていますが、コードプレックスに関する実際の単純なプロジェクトをリリースしました。

http://dbcompare.codeplex.com

2つの接続文字列を入力(または構築)すると、すべてのテーブル、ビュー、およびストアドプロシージャが比較されます。

于 2012-02-27T20:54:22.630 に答える
0

うーん、私が知っているものはありません。いつでも定義を SQL として取得してから、それらに対して diff ツールを実行できますが、それは少し面倒です。

おそらくこれに対する最善の解決策は、ある種の「移行」ツールを使用することです。これにより、データベース定義をコードと一緒に保持し、それらをバージョン管理することができます。

于 2008-08-22T17:08:32.783 に答える
0

SQL Delta と SQL Compare の両方があります。それぞれに強みがありますが、それぞれに弱点があり、非常に苦労しています。

SQL Delta は比較で一部のトリガーを見逃し、アクション リストにないアクションを実行します。また、実行してほしくないアクションを実行することもあります。それはかなりの時間をかけて発見されました。

SQL Compare はトリガーをキャッチしますが、それらはテーブル リストに埋め込まれています。大規模なデータベースでは、これは各テーブルを調べてふるいにかけることを意味します。ツールが分離してくれるはずだった何か。繰り返しますが、時間のかなりのコストです。

于 2009-07-03T15:00:50.460 に答える