From 90e5eb7672e58745d1c41c28051375582d22e6ec Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 21 Feb 2020 19:52:35 +0800 Subject: Migrate at runtime in production environment. --- Timeline/Program.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Timeline/Program.cs b/Timeline/Program.cs index 125fccbc..c49f74b0 100644 --- a/Timeline/Program.cs +++ b/Timeline/Program.cs @@ -1,8 +1,10 @@ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System.Resources; +using Timeline.Entities; [assembly: NeutralResourcesLanguage("en")] @@ -12,8 +14,19 @@ namespace Timeline { public static void Main(string[] args) { - CreateWebHostBuilder(args) - .Build().Run(); + var host = CreateWebHostBuilder(args).Build(); + + var env = host.Services.GetRequiredService(); + if (env.IsProduction()) + { + using (var scope = host.Services.CreateScope()) + { + var databaseContext = scope.ServiceProvider.GetRequiredService(); + databaseContext.Database.Migrate(); + } + } + + host.Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => -- cgit v1.2.3