Bläddra i källkod

Ensure DB exists

Bond_009 6 år sedan
förälder
incheckning
8d9428ebdc

+ 4 - 1
Emby.Server.Implementations/Activity/ActivityRepository.cs

@@ -20,7 +20,10 @@ namespace Emby.Server.Implementations.Activity
         protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
         {
             // Ensure the dir exists
-            if (!Directory.Exists(_dataDirPath)) Directory.CreateDirectory(_dataDirPath);
+            if (!Directory.Exists(_dataDirPath))
+            {
+                Directory.CreateDirectory(_dataDirPath);
+            }
 
             optionsBuilder.UseSqlite($"Filename={Path.Combine(_dataDirPath, "activitylog.sqlite.db")}");
         }

+ 10 - 6
Emby.Server.Implementations/ApplicationHost.cs

@@ -709,7 +709,7 @@ namespace Emby.Server.Implementations
             }
         }
 
-        public void Init()
+        public async Task Init()
         {
             HttpPort = ServerConfigurationManager.Configuration.HttpServerPortNumber;
             HttpsPort = ServerConfigurationManager.Configuration.HttpsPortNumber;
@@ -739,7 +739,7 @@ namespace Emby.Server.Implementations
 
             SetHttpLimit();
 
-            RegisterResources();
+            await RegisterResources();
 
             FindParts();
         }
@@ -754,7 +754,7 @@ namespace Emby.Server.Implementations
         /// <summary>
         /// Registers resources that classes will depend on
         /// </summary>
-        protected void RegisterResources()
+        protected async Task RegisterResources()
         {
             RegisterSingleInstance(ConfigurationManager);
             RegisterSingleInstance<IApplicationHost>(this);
@@ -931,7 +931,7 @@ namespace Emby.Server.Implementations
             EncodingManager = new MediaEncoder.EncodingManager(FileSystemManager, LoggerFactory, MediaEncoder, ChapterManager, LibraryManager);
             RegisterSingleInstance(EncodingManager);
 
-            var activityLogRepo = GetActivityLogRepository();
+            var activityLogRepo = await GetActivityLogRepository();
             RegisterSingleInstance(activityLogRepo);
             RegisterSingleInstance<IActivityManager>(new ActivityManager(LoggerFactory, activityLogRepo, UserManager));
 
@@ -1146,9 +1146,13 @@ namespace Emby.Server.Implementations
             return repo;
         }
 
-        private IActivityRepository GetActivityLogRepository()
+        private async Task<IActivityRepository> GetActivityLogRepository()
         {
-            return new ActivityRepository(ServerConfigurationManager.ApplicationPaths.DataPath);
+            var repo = new ActivityRepository(ServerConfigurationManager.ApplicationPaths.DataPath);
+
+            await repo.Database.EnsureCreatedAsync();
+
+            return repo;
         }
 
         /// <summary>

+ 1 - 3
Jellyfin.Server/Program.cs

@@ -99,7 +99,7 @@ namespace Jellyfin.Server
                 new SystemEvents(),
                 new NetworkManager(_loggerFactory, environmentInfo)))
             {
-                appHost.Init();
+                await appHost.Init();
 
                 appHost.ImageProcessor.ImageEncoder = GetImageEncoder(fileSystem, appPaths, appHost.LocalizationManager);
 
@@ -108,7 +108,6 @@ namespace Jellyfin.Server
                 await appHost.RunStartupTasks();
 
                 // TODO: read input for a stop command
-
                 try
                 {
                     // Block main thread until shutdown
@@ -167,7 +166,6 @@ namespace Jellyfin.Server
             {
                 Directory.CreateDirectory(programDataPath);
             }
-
             string configDir = Environment.GetEnvironmentVariable("JELLYFIN_CONFIG_DIR");
             if (string.IsNullOrEmpty(configDir))
             {

+ 1 - 1
MediaBrowser.Common/IApplicationHost.cs

@@ -131,7 +131,7 @@ namespace MediaBrowser.Common
         /// <summary>
         /// Inits this instance.
         /// </summary>
-        void Init();
+        Task Init();
 
         /// <summary>
         /// Creates the instance.