C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■96308 / )  Re[1]: 本番環境にコードファーストで作成したDBの変更
□投稿者/ WebSurfer (2153回)-(2020/11/10(Tue) 15:55:46)
No96305 (Saipon さん) に返信

> WindowsServer2019上のIISにWEBサイトを設置しアクセスしたところ、コードファーストの為、
> SQLServerにもDBが作成されました。ここまでは良いのですが、

ホントにそれで良いのでしょうか?

そうだとすると IIS のワーカープロセスのアカウントに SQL Server のテーブルの Create と
か Drop などを行う権限を与えたということだと思いますが、それは権限の与えすぎでは?

> 例えばこの環境で実際に本番運用をした場合、DBへのフィールド追加や桁数変更等の修正は
> DBに手動で直接行うものなのでしょうか?

本番環境での DB の変更・修正はないというのが前提だと自分は思うのですが?

そもそも EF Code First は、開発時に、本番環境で変更は必要ない状態まで作り上げるために、
何度もの DB の変更・修正が DB に手を加えなくてもコードの変更・修正で可能にするための
開発用の機能という位置づけのはずなのですが・・・

> 当然ソースのモデル(POCO?)を修正することになると思いますが、モデルを修正しWEB発行
> しサーバーにファイルしてサイトにアクセスすると、DBが再作成されデータが消えてしまう
> ようなのです。それに対してデータの再投入をするのがベストプラクティスなのでしょうか?
> 例えばモデルが変わってもDBを再作成せずに、手動でDB変更して運用するのが普通な気がし
> ています。

上にも書きましたが、それは開発時に限る話で、運用環境でそういうことはないところまで EF
Code First の機能を利用して作り上げるという話になると思います。

とは言え、運用状況で変更が絶対ないということもないでしょうから、そうなったら「手動でDB
変更」というのが選択肢になると思いますが。

> 新規のWEBアプリなのでコードファーストで試していますが、現状、モデルの変更の都度データ
> を再投入しており、いまいちメリットを理解できておりません。

データベースを自動的に削除して再作成するように設定してませんか? それを避けるために
Migration 機能というのがありますが。使ってますか?

そのあたりをご存じなければ、以下のチュートリアルの最初から「Code First Migrations と展開」
のところまでやってみてはいかがですか。

MVC 5 を使用する Entity Framework 6 Code First の概要
https://docs.microsoft.com/ja-jp/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/
返信 編集キー/


管理者用

- Child Tree -