2

責任あるプログラミングとバージョン管理の範囲内で、特にデータベースインスタンスで開発を行ってから本番環境に移行しているため、データベースの変更のバージョン管理を開始したいと思います。これを行う方法について、私にとって本当に意味のあることは何も見つかりませんでした。IDEとしてVisualStudio2010Proを使用しています。このプロセスを単純にし、データベースへの変更を比較的簡単に検出できるようにするドキュメントはありますか?または、これを簡単にするためにワークフローで何を変更する必要がありますか?

4

3 に答える 3

6

私が過去にこの種のことを成功させた1つの方法は、SQLソース管理を使用することです。Visual Studioは、この機能を提供していません。

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

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

于 2012-01-25T16:19:16.393 に答える
1

社内で独自のDBソリューションを使用しており、適切なDBバージョン管理に必要なすべてのツールを提供しています。すべての人にとって完璧なソリューションではないかもしれませんが、ぜひご覧ください(オープンソースです):bsn ModuleStore

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

再フォーマットにより、すべてのステートメントが同じ形式になり(たとえば、、などのオプションのキーワードASINNER処理OUTERされます)、すべてが「dbo」スキーマにスクリプト化され(別のスキーマにある場合でも)、すべての識別子が中括弧に入れられます([something])、すべての予約語を大文字にし、インデントなどを行います。

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

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

ツールセットはSMOに依存せず、自律的であることに注意してください。

于 2012-01-25T17:57:33.590 に答える
0

データベーススクリプトをSVNに保存します。こちらが SVNトータスの使い方のリファレンスです

また

データベーススクリプトをVSSに保存します。これがリファレンス ですVSSとは何ですか?どうすればそれを使用できますか?

どちらの場合も、行われた変更を追跡できるため、将来、バージョンの形式で保存された履歴を確認できます。

レッドゲート製品もご利用いただけます

編集

何が変わったのかをどうやって引き出すのですか?

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

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

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

統合スクリプトでテーブルのDropステートメントを使用していないことを願っています。テーブルからすべてのレコードを削除するため。

ドロップステートメントは、Stored Pro、View、Functionなどに対して行われます。

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

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

これが間違いなくあなたを助けることを願っています。

ここに画像の説明を入力してください

于 2012-01-25T17:30:54.767 に答える