aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Program.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-02-21 19:52:35 +0800
committercrupest <crupest@outlook.com>2020-02-21 19:52:35 +0800
commit90e5eb7672e58745d1c41c28051375582d22e6ec (patch)
treebc3da9df67e73dff6578da9a0f4cd3982f4cd5f2 /Timeline/Program.cs
parent1d5d0c85e24fe9f30d587dc714f1cd7a233c8073 (diff)
downloadtimeline-90e5eb7672e58745d1c41c28051375582d22e6ec.tar.gz
timeline-90e5eb7672e58745d1c41c28051375582d22e6ec.tar.bz2
timeline-90e5eb7672e58745d1c41c28051375582d22e6ec.zip
Migrate at runtime in production environment.
Diffstat (limited to 'Timeline/Program.cs')
-rw-r--r--Timeline/Program.cs19
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) =>