生産にEF移行(または自動移行フレームワーク)を使用することの危険は何ですか?

StackOverflow https://stackoverflow.com/questions/9387180

質問

エンティティフレームワーク4.3生産サイトでの移行を使用することを検討しています。私の懸念は次のとおりです。

何らかの理由で移行が失敗した場合、すべてのステートメントをロールバックし、サイトをダウン状態に配置して、問題を修正しようとする間、ユーザーがサイトを使用できないようにしたいと思います。唯一のことは、アセンブリに移行ファイルがコンパイルされているため、データベースに対してスクリプトを手作業で実行することに頼ることができないことです。移行ファイルとSQLスクリプトファイルの両方を個別に追跡できますが、その時点で移行を使用する理由がまったく使用できます。

作業中、スクリプトファイルはサイトにSQLフォルダー(誰も閲覧できない)に保存されます。以前に実行されたスクリプトファイルは、データベースに登録されています。新しいスクリプトファイルがフォルダーに表示される(データベースにない)場合、ユーザーが管理者である場合、それらはDBポータルにリダイレクトされ、その場合はメンテナンスのためにサイトダウンを取得します。ポータルからスクリプトを実行しない場合、新しいスクリプトをつかみ、Express Studioの内部でマニュアルを実行しようとします。これは10年以上にわたって機能しています。私は移行を探求して、より良い方法が到着したかどうかを確認しています。それは感じません。より良い方法があり、それが移行でなければ、それは何ですか。

役に立ちましたか?

解決

私は間違いなく、生産環境で自動移行を使用しません。実際、私は自動移行を使用するにはコントロールフリークが多すぎます。私はコードベースの移行を好み、すべてのデータベース(開発者自身の個人、テスト環境、生産)が通過したことを確認します まさに 同じ更新シーケンス。

各移行ステップが名前を取得するコードベースの移行を使用すると、テストおよび製品環境を持ち上げるときに使用するために個別の移行スクリプトを生成できます。できれば、実際の製品環境で実行する前に、検証するためにデータベースのコピーで実行する必要があります。

後で追加しました

EFの移行が自動的に何かを行うのを防ぐために、カスタムイニシャルイザー戦略を使用できます。見る 私のブログ または EFコードの最初のアプリを生産データベースに展開します スタックオーバーフローの質問。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top