質問: Asp.Net MVCとEntity Framework 6を使用してWebベースのアプリケーションを作成しました。現在、アプリはクライアントの本番サーバーにインストールされています。数週間前、私のクライアントはすでに今日実行されているアプリケーションの追加モジュールを望んでいます。プログラミングコードに関しては、新しいテーブルのモデルとプロパティのクラスがいくつか追加されています。私の質問は: 1. プロダクションサーバーのデータベーススキーマを更新するにはどうすればよいですか。プロダクションサーバーの既存のデータベースに直接アクセスできないVisual Studioの場合です。これが私の事件の本質です。 2. 私の場合のための方法または良い動きはありますか?彼の説明とガイダンスをどうぞ。 追加情報として: 1. クライアントは、アプリケーションを運用サーバーにインストールするプロセス中に、かなり厳密なセキュリティを適用します。彼女の意図は、私ではなく、私のプログラムからのインストールドキュメントを参照する彼ら自身の内部チームによって、アプリケーションサーバーの生産に入るプロセスであるときです。 2. サーバーアプリケーションとデータベースサーバーを個別に。 3. 私はエンティティフレームワークを使用します-最初にコードを作成します(DropCreateDatabaseIfModelChangesを使用)。 私の質問の多くは、すべての注意と彼の答えに感謝します。コメントや意見の形で解決策を提供できる回答の形で費やしていただいた時間に本当に感謝しています。ありがとう。
回答: **OP 1:** > 私はエンティティフレームワークを使用します-最初にコードを作成します(DropCreateDatabaseIfModelChangesを使用)。 > > **回答:** これは、本番データベースを扱う場合の間違ったアプローチです。この方法で行うと、データベース上の本番データはどうなりますか?データの移行を行うたびにすべてが失われ`CreateDatabaseIfNotExists` 。 `CreateDatabaseIfNotExists` 、本番`CreateDatabaseIfNotExists`として推奨される方法は`CreateDatabaseIfNotExists`です。 **CreateDatabaseIfNotExists:** > これはデフォルトの初期化子です。名前が示すように、構成に従ってデータベースが存在しない場合はデータベースを作成します。 > > **OP 2:** > 運用サーバーのデータベーススキーマを更新するにはどうすればよいですか? > > **回答:** 以下のコマンドを使用してSqlスクリプトを作成できます。その後、それを使用して、本番SQLサーバーで実行できます。 これをPackage Mangerコンソールで実行します。 ``` PM > Update-Database -Script ``` 詳細については、こちらをご覧ください**。SQLスクリプトの取得**