2010-12-10 16 views
5

SQL Server 2008でEntity Frameworkを使用するC#でアプリケーションを構築しています。Visual Studioでデザイナを使用してモデルを設計し、このエンティティを自動生成します。Entity Frameworkを使用する場合のデータベース移行の処理

バージョン1.0で作業しています。 2.0をリリースすると、モデルと基礎となるデータベース構造を変更する必要があります。私たちは "データベース移行"と呼ばれるものが必要だと思います。

伝統的に、データベースには「バージョン」という名前のテーブルがありました。ソフトウェアの新しいバージョンを作成するたびに、ALTER TABLEステートメントを含むデータベースアップグレードスクリプトを作成しました。私のソフトウェアはバージョンテーブルをチェックし、データベースを 'ソフトウェアバージョン'にアップグレードするのに必要なアップグレードスクリプトを実行しました。

これを処理するにはいくつかの方法がありますか? alter table-scriptsを自分で作成してデータベース構造をアップグレードするための独自のソフトウェアを作成する必要がなければ、うれしいことです。

答えて

0

私が最初にモデルを作成したときにしていたことは、私のモデルをスキーマ専用のデータベースに向けたことです(私のアプリケーションが走ったmyappデータベースを持っていました。 myapp_schemaデータベース)。 myapp_schemaが更新されたとき、私はDb Source Toolsを使用して更新スクリプトを生成し、myappのデータベーススキーマをmyapp_schemaと同じにしました。

0

Chech this post out。それはEF4のCTP4についてですが、これはあなたが必要とするものです。

http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

Unforunatelyこれはまだ利用できません。 CTP5は数日前にリリースされましたが、私が知っている限り、これはまだ含まれていません。

+0

Cool。しかし、ソリューションが将来のある時点でコードファーストではなく、モデルファーストのアプローチで今日働いていれば、よりクールになります。 ;-) – Martin

+0

私は同意し、この機能はコードファーストに限定されず、モデルファーストにも拡張されることを願っています。そして、私は本当に彼らができるだけ早くそれをリリースすることを願っています。これはおそらくFYIの答えのほうがはるかに優れていました。誰かが実際にこのようなことを知っていることを願っています。 – gligoran

関連する問題