2009-04-29 11 views
1

SQL Server 2008を実行しているASP.NET MVCアプリケーションにデータソースとして新しい機能を追加したいとします。この新しい機能を実装するには、既存のデータベーステーブルにいくつかの新しい列を追加する必要があります。実稼働サーバーでデータベースレイアウトの変更をどのようにレプリケートしますか?

開発サーバーでこれらの変更を行い、新しい機能を実装した後、新しいバージョンのアプリケーションを展開している最中に、プロダクションサーバーで同じデータベースの変更を行う最も簡単な方法は何ですか?これを自動化する方法はありますか?

編集:私はちょうど見つけたとしては、Visual Studioの2008のサーバーエクスプローラは(、データベースを右クリックして「スキーマの比較」をクリックしてください)二つの異なるデータベースのレイアウトを比較することによって、私のために必要な変更を抽出することができるようです。この機能を使用する場合、これは通常自分の要件をカバーしているのですか、それとも大きな問題がありますか?

答えて

2

私は、アプローチdescribed by K Scott Allenに似た手作業で生成されたスクリプトを使用してデータベースをバージョン管理することは、時間のかかる投資の価値があると考えています。しかし、あなたが求めている自動化されたソリューションではありません。

2

Red GateのSQL Compareユーティリティは、あなたのニーズが比較的単純な場合に役立ちます。そうでない場合、ER-WinやER-Studioなどのツールは、ハードコアスキーマと移行を処理できます。

+0

私が探していたものとまったく同じように見えますが、値札が私にとってはあまりにも険しいです... –

0

dbとappレイヤのバージョン管理が必要です。期間。 バージョン1.0とアプリレイヤー1.0が本番環境にある場合、バージョン1.1と1.1.5の後に実行されるすべての変更は、スクリプトを使用して「アップグレード可能」にする必要があります。 "alter table"と "alter proc"文はすべてスクリプトを介して実行可能です。

または db_oldデータベースに1.0 dbを復元します。スクリプトから本番データベースを作成し、データをコピーするだけです(複雑ではないデータベースは難しいはずです) applayer 1:0の自動展開。

また、プロセス全体については、DEVでトレーニングし、テストでテストし、qaで検証し、最近PROD環境で実行する必要があります。

編集:個人的に考えると、チームがDEVと同時にバージョン1.0から1.1にアップグレードすることがスムーズにできない場合、悪いデザインのような臭いがあり、アプリケーションレイヤー上に何があるべきか、 012サーバのデータベース

+0

これはすべて真ですが、私はこれを自動化する方法を求めていました少なくとも回避することができれば私は手で書きたいと思っていないので、私はこれらのスクリプトを生成するツールを少なくとも持っています。 –

+0

上記でsqlcompareが提案されています。 フリーウェアのチェック用OpenDiff - http://www.codeplex.com/OpenDBiff –

関連する問題