From 398a010776a8068b5c11b60ef36a3dc4b35d8c58 Mon Sep 17 00:00:00 2001 From: hydrant Date: Fri, 24 Apr 2020 21:56:27 +0200 Subject: [PATCH] datenbank immer automatisch updaten --- ReallifeGamemode.Server/Main.cs | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Main.cs b/ReallifeGamemode.Server/Main.cs index 87cb7957..6c760dcd 100644 --- a/ReallifeGamemode.Server/Main.cs +++ b/ReallifeGamemode.Server/Main.cs @@ -22,7 +22,7 @@ using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Infrastructure; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Services; - +using System.Threading; /** * @overview Life of German Reallife - Main Class (Main.cs) @@ -44,6 +44,36 @@ namespace ReallifeGamemode.Server [ServerEvent(Event.ResourceStart)] public void OnResourceStart() { + using var dbContext = new DatabaseContext(true); + + var pendingMigrations = dbContext.Database.GetPendingMigrations(); + + if (!pendingMigrations.Any()) + { + System.Console.WriteLine("No migrations to apply"); + } + else + { + System.Console.WriteLine("Applying {0} migrations", pendingMigrations.Count()); + foreach (var migration in pendingMigrations) + { + System.Console.WriteLine("\t{0}", migration); + } + + try + { + dbContext.Database.Migrate(); + } + catch (System.Exception e) + { + System.Console.WriteLine("Error while updating database: {0}", e.ToString()); + System.Console.ReadLine(); + System.Environment.Exit(1); + } + + System.Console.WriteLine("Migrations successfull"); + } + var methods = Assembly.GetExecutingAssembly() .GetTypes() .SelectMany(t => t.GetMethods())