4

現時点では、DEV SQL 環境から TEST および運用環境に変更を手動でプッシュしています (Visual Studio でスキーマ比較を使用し、さらに DEV に変更を加えるときに作成するスクリプトを使用します) が、これには非常に時間がかかり、エラーが発生しやすくなります。

これを行うためのより良い方法があるかどうか、またこれをどのように実装する必要があるかを考えていました。

バージョン管理の使用 (これはどのように機能しますか?)、または RED GATES の SQL ソース コントロールの使用について読んだことがあります (ただし、これは変更を TEST にプッシュするために使用できますか、それともローカルの変更を追跡するためにのみ使用されますか? )

データが破損したり失われたりしないように、テスト サーバーと運用サーバーを更新する信頼できる方法が必要です... SQL Server 2008 R2 と Visual Studio 2012 を使用しています。

私たちは新しいプロジェクトを開始しているので、変化の時が来ました! お時間をいただきありがとうございます!

4

3 に答える 3

2

これを行う簡単な方法の 1 つは、データベースにバージョン番号を格納する 1 つの行と 1 つの列を持つ単純なバージョン テーブルを作成することです。

変更を dev にプッシュするたびに、インクリメンタル SQL スクリプトを作成します。データベースの現在のバージョンに基づいて、必要なインクリメンタル SQL スクリプトを呼び出してスキーマを最新バージョンにアップグレードするマスター スクリプトを作成します。

インクリメンタル スクリプトでは、列の削除、列の型の変更、または列のサイズの縮小 (例: varchar(100) から varchar(10) へ) に注意してください。正しく計画しないと、データが失われる可能性があります。

増分スクリプトは、アップグレード中に db がクラッシュした場合に備えて、何度も実行できるべき等であるべきです。

于 2013-02-14T08:32:02.533 に答える
1

SQL ソース管理を使用することには多くの利点がありますが (私はプロダクト マネージャーなので、ぜひ試してみてください!)、その目的はバージョン管理に限定されており、さまざまな環境を管理および展開することではありません。これに適した Red Gate ツールは、Deployment Manager です。

http://www.red-gate.com/delivery/deployment-manager/

Deployment Manager プロジェクト チームが管理しているブログがここにあります。ツールがどこに向かっているのかがわかります。

http://thefutureofdeployment.com/

于 2013-02-23T18:27:01.320 に答える
0

VS のスキーマ比較には CLI がありますか? その場合は、1 日に数回実行するように自動化できます。そうでない場合は、スキーマ用のApexSQL Diffやデータの同期用のApexSQL Data Diffなど、CLI をサポートする他のサードパーティ ツールを使用してみてください。

于 2013-02-14T10:21:00.570 に答える