0

現時点ではEntity Frameworkを見ていて、Code Firstの例で作業しています。これまでのところ、フレームワークはモデルの変更を簡単に処理できないことがわかりました。クラス/テーブルに別のフィールドを追加するたびに、フレームワーク全体が削除され、スクラッチから作成されます。コード最初のモデルと新しいバージョンのソフトウェアの展開

同様の動作私は(N)Hibernateで見ました。 (私は間違っている可能性があります、それはずっと前でした)

私はチュートリアルで作業している限り、これは問題ありません。現実のプロジェクトが関与している場合、テーブルに新しいフィールドが必要になるたびにデータベースを削除することはできません。

シナリオを想像してみましょう。あなたは多くのクライアントがいるプロジェクトで作業しています。すべてのクライアントには独自のデータベースがあります。リリース1.0.1では、テーブルの1つに新しいフィールドを追加する必要があります。私が開発環境にデータベースをドロップすると、大きな問題ではありません。 (でも、DBを削除するたびにテストデータを入力するスクリプトを実行する必要があります。

この新しいバージョンを展開する必要があるときはどうすればよいですか?クライアントのデータベースを削除せずに更新するSQLスクリプトを作成しますか?バイナリをデプロイしますか?

しかし、これはコード変更とは別にデータベースの改造を行うよりもどのように優れていますか?コードファーストの移行が存在する理由は正確である

答えて

関連する問題