如何最好地(即可靠,安全和有效地)部署ASP.NET Core 2.2应用程序并进行自动数据库迁移?
我习惯使用Visual Studio 2017将ASP.NET Core应用程序部署到Azure App Services。超级简单。太容易了。与DB迁移只需轻轻点击一下部署勾掉,你是好。
但是,如果您要对Azure App Services以外的其他地方执行此过程,该过程实际上如何执行?
我认为这样的事情会很好。然而,这不会因工作ApplicationDbContext
是尚不可用。
// Startup.cs
public class Startup {
public Startup(IHostingEnvironment env,
ApplicationDbContext context) {
// Check if there're any pending migrations
if (env.IsProduction() && context.Database.GetPendingMigrations().Any()) {
context.Database.MigrateAsync(); // update if there are any
}
}