diff options
author | crupest <crupest@outlook.com> | 2020-02-21 19:52:35 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-02-21 19:52:35 +0800 |
commit | 18daa99d8f23f0b013d93ce57e3328e16bb174b8 (patch) | |
tree | bc3da9df67e73dff6578da9a0f4cd3982f4cd5f2 | |
parent | f389661667a510d6accfb412482578b66527e6e4 (diff) | |
download | timeline-18daa99d8f23f0b013d93ce57e3328e16bb174b8.tar.gz timeline-18daa99d8f23f0b013d93ce57e3328e16bb174b8.tar.bz2 timeline-18daa99d8f23f0b013d93ce57e3328e16bb174b8.zip |
Migrate at runtime in production environment.
-rw-r--r-- | Timeline/Program.cs | 19 |
1 files 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<IWebHostEnvironment>();
+ if (env.IsProduction())
+ {
+ using (var scope = host.Services.CreateScope())
+ {
+ var databaseContext = scope.ServiceProvider.GetRequiredService<DatabaseContext>();
+ databaseContext.Database.Migrate();
+ }
+ }
+
+ host.Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
|