が、私は、次の設定があります:私のプロジェクトでエンティティフレームワークのコードファーストマイグレーションを本番環境に正しく昇格させるにはどうすればよいですか?私のASP.NET EF 6アプリで
internal sealed class Configuration : DbMigrationsConfiguration<Gcim.Management.Module.BusinessObjects.ManagementDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
protected override void Seed(Gcim.Management.Module.BusinessObjects.ManagementDbContext context)
{
}
}
を、私はEFコード-最初の移行が有効になっています。 私は、VSパッケージマネージャのプロンプトからupdate-databaseだけでなく、add-migrationも実行できます。 しかし、エンティティが変更され、移行を追加し、データベースを更新すると、dev環境でのみ動作します。私は私のASP.NETプロジェクトを公開すると が、私はまだ、このエラーを取得し、生産IISにインストールし、実行します。
The model backing the 'ManagementDbContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
私は生産の増分DBの変更を強制するために行う必要があり、他ません、データ損失なし?
デプロイメント手順は何ですか? migrate.exeを使用して移行を呼び出すことができます。通常は、継続的な統合設定(TeamCity、Jenkins、TFSなど)の展開の一環としてこれを実行しています。アプリケーションをどのように配備すれば、それと並行して移行を実行するかがわかります。 – NWard
公開パッケージをC:\ inetroot \ www \ MyAppNameフォルダに解凍するだけです。移行を実行するために、migrate.exeが必要とするファイルは何ですか? VSでは、C#の移行ファイルはプロジェクトの一部ですが、プロジェクトの公開後はアプリパッケージの一部ではありません。あなたの場合、migrate.exeを実行するとき、何を移行する必要があるかを説明するために、パラメータとして何を提供しますか? –
migrate.exeに関するドキュメントは、https:// msdn.microsoft.com/ja-data/jj618307.aspxでご覧になれます。ビルドステップは、ディレクトリ内の最新の移行を対象とするように設定しました。私たちのビルドサーバーは、バージョンコントロールを介して完全なソースコードにアクセスできたので、実行時に利用できるマイグレーションファイルがありました。あなたの場合、手作業ですべてをやっているので、解凍する直前に本番環境をターゲットにした移行を実行する必要があります。私はJenkins(無料!)、TFS、TeamCityなどのビルド/デプロイソリューションを使用して、このプロセスをより強力にすることをお勧めします。 – NWard