22

私たちは、SQL ソース コントロールの可能な解決策を検討してきました。Red Gates の SQL ソース コントロールを見つけたのですが、実装した人がいるのだろうか? 試用版をダウンロードして試してみますが、他の人が実際の経験を持っているかどうかを確認したかっただけです.

いつものように、入力に大いに感謝します

--S

4

4 に答える 4

26

SQL Source Control(3.0)およびSQL Compare(10.1)の最新バージョンでの変更を反映するために、以下の元の投稿を更新しました。

この質問は1年以上前に行われたので、私の回答はあまり役に立たないかもしれませんが、現在SSCを評価している可能性のある他の人にとっては、2セントを投入すると思いました。SQLソース管理(SSC)を使い始めたばかりで、これまでのところ全体的にかなり満足しています。ただし、特に共有データベース環境で作業している場合(すべての開発者がローカルで作業しているのではなく)、特に同じデータベース内のオブジェクトが開発チーム間で無計画に分割されているレガシー環境で作業している場合は、いくつかの癖があります。

組織内での製品の使用方法の概要を簡単に説明するために、全員が同じ開発データベースに変更を加える共有環境で作業しているため、共有データベースをソース管理リポジトリに接続しました。各開発者は、SQL Server Management Studio(SSMS)を介してデータベース内のオブジェクトに変更を加える責任があり、オブジェクトが終了したら、変更をソース管理にコミットできます。ステージングにデプロイする準備ができたら、ビルドマスター(me)はデータベースコードの開発ブランチをメイン(ステージング)ブランチにマージし、データベースのメインブランチリポジトリバージョンをソースおよびライブとして使用してSQLCompareを実行しますステージングデータベースをターゲットとして、SQL Compareは、ステージング環境に加えられた変更をデプロイするために必要なスクリプトを生成します。実稼働展開へのステージングは​​、同様の方法で機能します。注意すべきもう1つの重要な点は、同じデータベースを他の開発チームと共有しているという事実を踏まえて、名前やタイプなどでデータベースオブジェクトにフィルターを作成できるSSCの組み込み機能を使用していることです。手動で他のすべてのオブジェクトを除いて、特定のチームのオブジェクトにフィルターを設定して、展開時に他の開発チームの変更を誤ってコミットしないようにします。

したがって、一般に、セットアップと使用は非常にシンプルな製品であり、同期が外れるリスクがある別のソースリポジトリに保存されている切断されたスクリプトファイルとは対照的に、SSMSでライブオブジェクトを常に操作しているため、非常に便利です。 。SQL Compareがデプロイメントスクリプトを生成するので、スクリプトを自分で作成する場合のようにエラーが発生することを心配する必要がないので、これも便利です。また、SQL Compareは非常に成熟した安定した製品であるため、適切なスクリプトが作成されることを確信できます。

とはいえ、これまでに遭遇した癖のいくつかを次に示します。

  • SSCは、ソース管理リポジトリと同期していないデータベースアイテムを追跡するために、dbサーバーとの通信に関して箱から出してかなりおしゃべりです。数ミリ秒ごとにポーリングし、SSCを使用して同じデータベースに対して作業している複数の開発者を追加すると、dbaがあまり満足していなかったことが想像できます。幸いなことに、オブジェクトが変更されたときの応答性の高い視覚的な通知を犠牲にして、ポーリングの頻度をより許容できるものに簡単に減らすことができます。
  • オブジェクトフィルタリング機能を使用すると、SSMSのオブジェクトを見ても、どのオブジェクトがフィルターに含まれているかを簡単に判断できません。したがって、アイコンがソース管理されたオブジェクトを示すために使用されるVisual Studioとは異なり、オブジェクトがソース管理下にあるかどうかはわかりません。
  • オブジェクトフィルタリングGUIは非常に不格好です。従来のデータベース環境で作業しているため、現在、チームが所有するオブジェクトと他のチームが所有するオブジェクトを明確に区別することはできません。そのため、他のチームの変更を誤ってコミット/デプロイすることを防ぐためです。 、所有する特定の各オブジェクトを明示的に含めるためのフィルタリングスキームを設定しました。ご想像のとおり、これは非常に面倒であり、フィルターを編集するGUIが一度に1つのオブジェクトを入力するように設定されているため、特に初めて環境を設定しようとすると、非常に苦痛になる可能性があります(私は結局これを行うためのアプリケーションを作成する)。今後は、オブジェクトのフィルタリングをより容易にするために、アプリケーションの新しいスキーマを作成しています(とにかくより良い方法であることに加えて)。
  • 共有データベースモデルを使用すると、開発者は、変更が自分のものでない場合でも、ソース制御データベースに保留中の変更をコミットできます。SSCは、一連の変更をチェックインしようとすると、これらの変更が自分のものではない可能性があるが、それ以外は自分自身のものであるという警告を表示します。私は実際、これがSSCの最も危険な「癖」の1つであると感じています。
  • SQL Compareは現在、SSCによって作成されたオブジェクトフィルターを共有できないため、SQL Compareで一致するフィルターを手動で作成する必要があるため、これらが同期しなくなる可能性があります。不格好なオブジェクトフィルタリングGUIを処理しないように、基になるSSCフィルターファイルからSQLCompareプロジェクトフィルターにフィルターをカットアンドペーストすることになりました。SQL Compareの次のバージョンでは、SSCとフィルターを共有できるようになると思います。したがって、少なくともこの問題は短期的な問題にすぎません。(注:この問題は、SQLCompareの最新バージョンで解決されています。SQLCompareはSSCによって作成されたオブジェクトフィルターを使用できるようになりました。)
  • SQL Compareは、直接起動した場合、SSCデータベースリポジトリと比較することもできません。SSMS内から起動する必要があります。SQL Compareの次のバージョンでこの機能が提供されると思います。したがって、これも短期的な問題です。(注:この問題は、最新バージョンのSQL Compareで解決されています。)
  • SQL Compareは、ターゲットデータベースをある状態から別の状態に移行するための適切なスクリプトを作成できない場合があります。通常、空ではない既存のテーブルのスキーマを更新する場合は、手動のスクリプトを作成する必要があります。プロセスを自分で管理します。幸い、これはSSCの次のリリースの「移行スクリプト」によって対処されます。製品の初期リリースバージョンを見ると、この新機能の実装はよく考えられ、設計されているようです。(注:移行スクリプト機能は正式にリリースされました。ただし、現在は分岐をサポートしていません。移行スクリプトを使用する場合は、元の開発コードブランチと比較してSQL比較を実行する必要があります...チェックインしたものあなたの変更...これはかなり不格好で、この制限を回避するために理想的とは言えない方法でビルドプロセスを変更することを余儀なくされました。これは将来のリリースで対処されることを願っています。)

全体として、私はこの製品と、ユーザーのフィードバックに対するRedgateの応答性と製品の方向性に非常に満足しています。この製品は非常に使いやすく、うまく設計されています。次のリリースでは、この製品によって、必要なもののすべてではないにしても、ほとんどが提供されると思います。

于 2011-10-27T19:37:27.967 に答える
12

dev -> test -> production の段階でスクリプトを生成するために SQL Compare を使用すると、時間を大幅に節約できます。

ただし、ソース管理には SVN と ScriptDB ( http://scriptdb.codeplex.com/ ) を使用します。私は主に SQL スクリプトのソース管理を使用して、変更を追跡しています。構造を変更したときにデータが変更された可能性があるため、データベースのバージョンをロールバックすることはほとんど (あったとしても) 機能しないと思います。

これは、現在のいくつかのプロジェクトでは問題なく機能します (最大のものは 200 テーブルと 2000 sproc です)。ただし、これを行う主な理由はコストです。すべてのチーム メンバーが SQL Compare を購入する必要があるわけではないためです (本当に必要でない限り、商用プロジェクトに依存関係を追加することは避けています)。

于 2010-08-25T12:40:37.983 に答える
3

Red Gate の製品を徹底的に評価したところ、いくつかの重大な欠陥が見つかりました。誰がオブジェクトを変更したかを確認したい場合、システム管理者権限がないとできません。製品はサーバー上のトレースを調べる必要があり、これにはそれらの権利が必要です。私は 5 人以上のチームに所属していますが、誰が保留中の変更を行っているのかわからないため、製品を使用できなくなります。

于 2011-04-27T15:29:31.463 に答える
1

私はちょうど新しい会社で働き始めたばかりで、彼らはすべてのプロジェクトに Redgate SQL ソース管理を使用していますが、それらは大規模で複雑なものです。TFSと連携してうまく機能します。私の観点からの唯一の欠点は、SQL Server Management Studio の統合が非常に不安定であることです。ツールをインストールすると、SQL Server Management Studio が頻繁にクラッシュします。

于 2019-01-15T13:37:31.327 に答える