2012-01-06 14 views
3

私はここ数週間、サイドプロジェクトに取り組み、EntityFrameworkコードでシステムを構築しました。これは開発中に非常に便利でした。コードに必要な変更がDBに素早く反映されました。しかし、今、私はサイトを立ち上げたいが、開発を続けたい、モデルを微調整するたびにDBを落として再作成する必要はない。エンティティフレームワークのコードから開発から生産への移行

EFを生成する方法はありますかモデルを変更するためのスクリプトを変更して、プロダクションサーバーに自分自身を展開できますか?そして、テーブルを削除して再作成しなくても、既にどこのデータベース(サイトのバックグラウンドでWindowsサービス)を使用しているのですか? "コードのようなものですが、今はプロダクションDBを持っていますが、それを壊さないでください..."

答えて

4

個人的に私はVS2010の組み込みデータツールを使用して、プロダクションをアップデートするためのデータベーススキーマ同期を行います。

VS Premiumをお持ちでない方は、安価なツールとして、過去に使用されていたSQLDeltaがあり、本当にうれしいです。

両方のツールが2つのデータベースバージョンに接続し、まずテーブルスキーマを同期させることができます。どちらも、SQLスクリプトへのエクスポート機能を備えています。

EFのコミッティングは、あなたのソリューション内でこの問題を解決することができますが、まだベータ版であることを可能にする移行です。移行では、データベースのアップグレードイベントとダウングレードイベントをコードで記述することができます。

+0

移行は便利なようですが、RTMになるまでは、VS 2010のビルトインデータツールに固執します。究極のコピーを手に入れたので、その機能が必要です。ありがとう! – TiernanO

3

EFのRTMバージョンは、この機能を備えていません。あなたが生産に行くと、あなたはそれを自分で処理する必要があります。一般的な方法は、プロダクションでデータベースイニシャライザを無効にし、VS PremiumやRedGate Databaseなどのツールを使用して、プロダクションとdevデータベースを比較し、変更SQLスクリプトを作成することです。

EF Migrationsもお試しください。これはあなたが求めているツールです。問題はまだベータです(ただし、一度完了したEF 4.3の一部である必要があります)ので、すべてのケースで機能する必要はなく、機能/ APIはRTMで変更できます。

+0

EFの移行に関するヒントとVSのdbツールに関する注意をお寄せいただきありがとうございます。 – TiernanO

+0

SQL Compare 10(SQL Source Control 3と一緒に)に新しい移行機能が追加されました。これにより、SQL Compareによって生成されたスクリプトをオーバーライドすることによって、アップグレードプロセスを制御するメカニズムが提供されます。 http://www.red-gate.com/products/sql-development/sql-compare/deployment –

関連する問題