|
@@ -48,6 +48,7 @@ using Jellyfin.Api.Helpers;
|
|
|
using Jellyfin.MediaEncoding.Hls.Playlist;
|
|
|
using Jellyfin.Networking.Configuration;
|
|
|
using Jellyfin.Networking.Manager;
|
|
|
+using Jellyfin.Server.Implementations;
|
|
|
using MediaBrowser.Common;
|
|
|
using MediaBrowser.Common.Configuration;
|
|
|
using MediaBrowser.Common.Events;
|
|
@@ -101,6 +102,7 @@ using MediaBrowser.Providers.Subtitles;
|
|
|
using MediaBrowser.XbmcMetadata.Providers;
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
+using Microsoft.EntityFrameworkCore;
|
|
|
using Microsoft.Extensions.Configuration;
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
using Microsoft.Extensions.Logging;
|
|
@@ -652,6 +654,17 @@ namespace Emby.Server.Implementations
|
|
|
/// <returns>A task representing the service initialization operation.</returns>
|
|
|
public async Task InitializeServices()
|
|
|
{
|
|
|
+ var jellyfinDb = await Resolve<IDbContextFactory<JellyfinDb>>().CreateDbContextAsync().ConfigureAwait(false);
|
|
|
+ await using (jellyfinDb.ConfigureAwait(false))
|
|
|
+ {
|
|
|
+ if ((await jellyfinDb.Database.GetPendingMigrationsAsync().ConfigureAwait(false)).Any())
|
|
|
+ {
|
|
|
+ Logger.LogInformation("There are pending EFCore migrations in the database. Applying... (This may take a while, do not stop Jellyfin)");
|
|
|
+ await jellyfinDb.Database.MigrateAsync().ConfigureAwait(false);
|
|
|
+ Logger.LogInformation("EFCore migrations applied successfully");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
var localizationManager = (LocalizationManager)Resolve<ILocalizationManager>();
|
|
|
await localizationManager.LoadAll().ConfigureAwait(false);
|
|
|
|