0

私はac#Webアプリケーションに取り組んでいます。現在、Visual Studio mvc c# ローカル ホストのように、ローカル ホストでテストしています。いくつかの追加を行い、新しいテーブルを作成しました。移行を使用しました。移行を有効にしてから移行を追加し、データベースを更新するたびに。ここに私の質問があります。この移行はすべてローカル ホストで行われ、現在は本番環境にあります。本番環境の www ルートに公開した後、この変更は自動的に行われますか?ローカル ホストから本番環境にコピーすると、本番データベースのコンテンツが失われますか?

基本的に私が欲しいのは、新しいテーブルフィールドと構造であり、コンテンツを公開または本番環境にコピーすることではありません。

ありがとう

4

2 に答える 2

2

EntityFramework を使用していると仮定します。

本番環境で www ルートに公開した後、この変更は自動的に行われますか?

これは実際には構成によって異なります。デフォルトでは、指示しない限りそうしません。保留中の移行を適用してデータベースを自動的にアップグレードする場合は、MigrateDatabaseToLatestVersionデータベース初期化子を登録します。

ローカル ホストから本番環境にコピーすると、本番データベースのコンテンツが失われますか?

データを意味する場合はコンテンツという言葉で、移行を適用することを意味する場合はコピーオーバーという言葉を使うと、EF にはまだネイティブ データ モーション サポートがありません。したがって、コンテンツの完全性を失うべきではありません。ただし、必要に応じて、移行内でカスタム SQL を実行できます。そのための機能です。Sql()

要するに、使用しない場合DropCreateDatabaseIfModelChanges、またはDropCreateDatabaseAlways製品コードで使用しない場合は、比較的安全です。

于 2013-08-18T07:06:11.373 に答える
0

私の知る限り、指定しなければデータは変更されませんが、本番データベースのコピーまたは復元を使用してステージング環境を作成し、移行の成功をテストする必要があります。

とにかく、使用している移行モードによっては、運用データベースが影響を受けます。詳細については、このMSDN リンクを参照してください。

役立つ EF コマンドのリストについては、このリンクを参照してください。

于 2013-08-18T06:02:25.687 に答える