aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server/Migrations/JellyfinMigrationService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Jellyfin.Server/Migrations/JellyfinMigrationService.cs')
-rw-r--r--Jellyfin.Server/Migrations/JellyfinMigrationService.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/Jellyfin.Server/Migrations/JellyfinMigrationService.cs b/Jellyfin.Server/Migrations/JellyfinMigrationService.cs
index 5331b43e3..fe191916c 100644
--- a/Jellyfin.Server/Migrations/JellyfinMigrationService.cs
+++ b/Jellyfin.Server/Migrations/JellyfinMigrationService.cs
@@ -17,6 +17,7 @@ using MediaBrowser.Model.Configuration;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Migrations;
@@ -47,7 +48,7 @@ internal class JellyfinMigrationService
public JellyfinMigrationService(
IDbContextFactory<JellyfinDbContext> dbContextFactory,
ILoggerFactory loggerFactory,
- IStartupLogger startupLogger,
+ IStartupLogger<JellyfinMigrationService> startupLogger,
IApplicationPaths applicationPaths,
IBackupService? backupService = null,
IJellyfinDatabaseProvider? jellyfinDatabaseProvider = null)
@@ -105,6 +106,13 @@ internal class JellyfinMigrationService
var dbContext = await _dbContextFactory.CreateDbContextAsync().ConfigureAwait(false);
await using (dbContext.ConfigureAwait(false))
{
+ var databaseCreator = dbContext.Database.GetService<IDatabaseCreator>() as IRelationalDatabaseCreator
+ ?? throw new InvalidOperationException("Jellyfin does only support relational databases.");
+ if (!await databaseCreator.ExistsAsync().ConfigureAwait(false))
+ {
+ await databaseCreator.CreateAsync().ConfigureAwait(false);
+ }
+
var historyRepository = dbContext.GetService<IHistoryRepository>();
await historyRepository.CreateIfNotExistsAsync().ConfigureAwait(false);