2

Visual Studio プロジェクトの SQL Server データベースのビルド/展開/移行をどのように管理していますか?

合理的なデータベース パーツ (最大 100 個のテーブル、最大 500 個のプロシージャ/関数/ビュー) を含む製品があるため、現在のバージョンの新しいデータベースをデプロイするだけでなく、古いデータベースを現在のバージョンにアップグレードできる必要があります。現在、新しいデータベースの作成とバージョン間の移行用に個別のスクリプトを維持しています。明らかに理想的ではありませんが、他の誰かがこれにどのように対処していますか?

多くの顧客がそれぞれ独自の db インスタンスを持っているため、これは私たちにとって複雑です。私たち自身の Web サーバーに dev/test/live インスタンスを持っているだけではありませんが、他のユーザーの dev/test/live の管理に関するプロセスは似ている必要があります。

更新: RedGate のようなプロプライエタリな製品は使用したくありません (ただし、それらは非常に優れていると常に聞いており、解決策として検討します)。

4

3 に答える 3

2

Red-Gate SQLCompare と SQLDataCompare を使用してこれを処理します。考え方は単純です。どちらの比較製品でも、選択したテーブル (構成テーブルなど) からのスキーマまたはデータの完全なイメージをスクリプトとして維持できます。次に、任意のデータベースをスクリプトと比較して、変更スクリプトを取得できます。スクリプトは、リリースごとに Mercurial ソース管理とタグ (ラベル) に保持します。その後、サポートは任意のバージョンのスクリプトを取得し、Redgate ツールを使用してゼロから作成するか、アップグレードすることができます。

Redgate には、コードから比較機能を実行できる API 製品もあります。たとえば、これにより、インストーラーまたは製品自体に自動アップグレード機能を持たせることができます。これにより、ロールアウト プロセスをより完全に自動化できるため、ホストされている Web アプリによく使用します。この場合、サポートが実行して自動ロールアウトとアップグレードを実行できる MSBuild タスクがあります。サードパーティに配布する場合は、API を含む配布ごとに少額の追加ライセンス料金を支払う必要があります。

Redgate には、データベースのインストールまたはアップグレードを自動的にパッケージ化するツールもあります。バージョンのスクリプトと比較すると柔軟性が高まることがわかったため、これは使用しません。

Redgate ツールは、スキーマと構成データを非常に細かい方法でソース管理することが簡単になるため、開発にも役立ちます (各データベース オブジェクトを独自のファイルに配置できます)。

于 2010-04-20T14:06:56.797 に答える
1

この質問は SSDT プロジェクトが登場する前に尋ねられましたが、影響を受けるデータがある構造的なデータベース変更のための移行スクリプトを手作業で作成するとともに、今日私が行っている方法は間違いありません。

于 2013-01-02T15:06:13.847 に答える
0

MS VSTS メソッド (2008 の説明はこちら) もありますが、2010 でこれを行うことと、これらのツールを使用することの長所/短所に関する良い記事を入手した人はいますか?

于 2010-04-20T23:45:05.430 に答える