Browse Source

fix update level migration

Luke Pulverenti 8 years ago
parent
commit
b1b0438d05

+ 10 - 6
MediaBrowser.Server.Startup.Common/ApplicationHost.cs

@@ -310,11 +310,16 @@ namespace MediaBrowser.Server.Startup.Common
             LogManager.ExceptionMessagePrefix = builder.ToString();
         }
 
+        /// <summary>
+        /// Runs the startup tasks.
+        /// </summary>
         /// <summary>
         /// Runs the startup tasks.
         /// </summary>
         public override async Task RunStartupTasks()
         {
+            await PerformPreInitMigrations().ConfigureAwait(false);
+
             if (ServerConfigurationManager.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion &&
                 ServerConfigurationManager.Configuration.IsStartupWizardCompleted)
             {
@@ -345,6 +350,7 @@ namespace MediaBrowser.Server.Startup.Common
             {
                 var name = entryPoint.GetType().FullName;
                 Logger.Info("Starting entry point {0}", name);
+                var now = DateTime.UtcNow;
                 try
                 {
                     entryPoint.Run();
@@ -353,7 +359,7 @@ namespace MediaBrowser.Server.Startup.Common
                 {
                     Logger.ErrorException("Error in {0}", ex, name);
                 }
-                Logger.Info("Entry point completed: {0}", name);
+                Logger.Info("Entry point completed: {0}. Duration: {1} seconds", name, (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture));
             }
             Logger.Info("All entry points have started");
 
@@ -365,23 +371,21 @@ namespace MediaBrowser.Server.Startup.Common
             HttpPort = ServerConfigurationManager.Configuration.HttpServerPortNumber;
             HttpsPort = ServerConfigurationManager.Configuration.HttpsPortNumber;
 
-            PerformPreInitMigrations();
-
             return base.Init(progress);
         }
 
-        private void PerformPreInitMigrations()
+        private async Task PerformPreInitMigrations()
         {
             var migrations = new List<IVersionMigration>
             {
-                new UpdateLevelMigration(ServerConfigurationManager, this, HttpClient, JsonSerializer, _releaseAssetFilename)
+                new UpdateLevelMigration(ServerConfigurationManager, this, HttpClient, JsonSerializer, _releaseAssetFilename, Logger)
             };
 
             foreach (var task in migrations)
             {
                 try
                 {
-                    task.Run();
+                    await task.Run().ConfigureAwait(false);
                 }
                 catch (Exception ex)
                 {

+ 1 - 1
MediaBrowser.Server.Startup.Common/Migrations/DbMigration.cs

@@ -16,7 +16,7 @@ namespace MediaBrowser.Server.Startup.Common.Migrations
             _taskManager = taskManager;
         }
 
-        public void Run()
+        public async Task Run()
         {
             // If a forced migration is required, do that now
             if (_config.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion)

+ 3 - 2
MediaBrowser.Server.Startup.Common/Migrations/IVersionMigration.cs

@@ -1,8 +1,9 @@
-
+using System.Threading.Tasks;
+
 namespace MediaBrowser.Server.Startup.Common.Migrations
 {
     public interface IVersionMigration
     {
-        void Run();
+        Task Run();
     }
 }

+ 2 - 1
MediaBrowser.Server.Startup.Common/Migrations/MovieDbEpisodeProviderMigration.cs

@@ -1,5 +1,6 @@
 using MediaBrowser.Controller.Configuration;
 using System.Linq;
+using System.Threading.Tasks;
 
 namespace MediaBrowser.Server.Startup.Common.Migrations
 {
@@ -13,7 +14,7 @@ namespace MediaBrowser.Server.Startup.Common.Migrations
             _config = config;
         }
 
-        public void Run()
+        public async Task Run()
         {
             var migrationKey = this.GetType().FullName;
             var migrationKeyList = _config.Configuration.Migrations.ToList();