2012-01-25 11 views
2

責任プログラミングとバージョン管理の範囲では、データベースインスタンスを開発してから本番環境に移行するので、特にデータベースの変更を反映したいと思います。私はこれをどうやって行うのか本当に私には分かりません。私は自分のIDEとしてVisual Studio 2010 Proを使用しています。このプロセスを単純化し、比較的簡単にデータベースの変更を検出できる文書がありますか?これを簡単にするためにワークフローを変更する必要はありますか?SQL Serverデータベースのバージョン管理のためのデータベーススクリプトの生成

答えて

6

過去にこの種のことを成功させた方法の1つは、Sql Source Controlです。 Visual Studioはこの機能を提供していません。

また、SSMSを使用してデータベーススクリプトを生成し、ファイルとして保存することもできます。スクリプトをチェックインすることができます。 1つのファイルでDBスクリプト全体を生成するのか、オブジェクトごとに行うのかを選択します。同期部分は、本番環境でスクリプトを実行することによって、あなたが行う必要があります。結論として、の悪夢

Redgateはまた、Sql Compareを提供しています。これはデータベースの同期に最適です。あなたまたはあなたの会社がそれらを買う余裕があるならば、彼らの製品を見てください。

+0

私はそのパッケージの外観が好きです。 –

+0

VS2010では、オブジェクトをサーバーエクスプローラからプロジェクトエクスプローラにドラッグして、DBオブジェクトをスクリプトできます。 – Lucero

0

データベーススクリプトをSVNに保存します。ここでRefernceHow to use SVN Tortoise

OR

はVSSに、データベーススクリプトを保存しています。ここに参照があるWhat is VSS ? How can we use that ? いずれの場合も、今後のバージョンの形式で保存された履歴を確認できるように、変更を追跡することができます。

また

EDIT

はどのようにして何が変更されたものを引き出してくださいレッドゲートの製品を使用することができますか?

比較機能を使用して、以前のバージョンで行った変更を確認します。

ライブデータベースサーバーに変更を適用するにはどうすればよいですか?

サーバーから最新のファイルをダウンロードします。

あなたは、統合スクリプトのテーブルに対してDropステートメントを使用しないことを願っています。それは、テーブルからすべてのレコードを削除します。

ドロップ文がストアドプロ、表示、機能のために開催されるなど

あなたは以下と本番サーバー上の完全な最新のデータベース・スクリプト・ファイルを実行する必要があることに注意してくださいアクションが

1. Remove Drop Statement for Schema DDL 
2. Add Drop/Create Statements for Stored Proc/Views 
3. Include Alter statements DML of schema. 
を計画言及

これは間違いなくあなたを助けることを願っています。私たちは、適切なDBのバージョン管理のために必要なすべてのツールをもたらし、社内当社独自のDBソリューションを使用

enter image description here

+0

これは本当に質問に答えません。私はSVNを使用する方法を知っていますが、データベースのバージョンアップ方法はわかりません。 –

+0

親切に答えをもう一度読んでください。これらの製品は、完全なデータベース/データベース個別スクリプトの履歴を作成することが記載されています。ここで注意すべきポイントは、製品のいずれかに完全なデータベーススクリプトを保存して、次に必要に応じて変更を比較できるようにすることです。私はこれが現在よりはるかに大きく拡張することを願っています:) – Pankaj

+0

私はSVNを使用する方法を知っていますし、どちらの記事もSQLサーバとの統合については何も言及しておらず、違いを示しています。あなたのソリューションは、新しいスクリプトを引っ張るだけですか?何が変わったのか、どうやって引き出すのですか?ライブデータベースサーバーに変更を適用するにはどうすればよいですか? –

1

bsn ModuleStore

バージョン管理の側面は次のとおりです。このツールでは、SQLをスクリプト化することができます。半自動で、ソースコードを一様なフォーマットに再フォーマットします。したがって、ファイルはいつ誰がスクリプト化されていても、同じソースで常に同じになります。したがって、非ロックソース制御システム(特にSVN、GitまたはMercurial)でうまく動作します。

再フォーマットが(例えばなどASINNEROUTERなどのオプションキーワードが扱われる)と同じ形式ですべての文を置き、「DBO」スキーマ(それは別のものであっても)に、スクリプトのすべてを、

実行時のDBとCREATEスクリプト(DBソースコード)を比較することができます。インデックス、制約、ビュー、ストアドプロシージャ、トリガ、カスタムタイプ、新しいテーブルなどの更新など、すべての非破壊的な変更について自動的に更新されます。デストラクタの変更は手動でスクリプティングする必要があります(通常はデータ変換が必要なテーブルの変更)。ランタイムは、結果のDBがCREATEスクリプトと一致しない場合、すべての更新がトランザクション内で実行され、ロールバックされるようにします。したがって、DBがアプリケーションによって必要とされるバージョンに正確にあることを知ることができます手動で改ざんされています。

また、複数の「モジュール」を1つのデータベースで使用できます。各モジュールはスキーマとして保存され、他のスキーマとは独立しているため、1つのDBからモジュールを追加または削除したり、アプリケーションのさまざまな部分に複数のデータベースを作成する必要はありません。また、これを行うためのスキーマの使用は、名前の衝突がないことを確認します。

ツールセットがSMOに依存しないことは注目に値するでしょう。それは自律的です。

関連する問題