diff options
| author | JPVenson <github@jpb.email> | 2025-01-27 17:20:14 +0000 |
|---|---|---|
| committer | JPVenson <github@jpb.email> | 2025-01-27 17:20:14 +0000 |
| commit | 844646e2fe6d726edc8e086cc465396303d24f29 (patch) | |
| tree | b5e21a53df12d963a93047f9b1d959248cf18a5d /Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs | |
| parent | 9d1c4ea169a15d580923aefb0ec43c2b6be5b3a6 (diff) | |
Fixed migration runner and added docs for adding migrations
Diffstat (limited to 'Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs')
| -rw-r--r-- | Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs b/Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs index 1b0dbbe10..091ecee98 100644 --- a/Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs +++ b/Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs @@ -8,6 +8,7 @@ using Jellyfin.Server.Implementations.DatabaseConfiguration; using MediaBrowser.Common.Configuration; using MediaBrowser.Controller.Configuration; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using JellyfinDbProviderFactory = System.Func<System.IServiceProvider, Jellyfin.Server.Implementations.IJellyfinDatabaseProvider>; @@ -46,8 +47,12 @@ public static class ServiceCollectionExtensions /// </summary> /// <param name="serviceCollection">An instance of the <see cref="IServiceCollection"/> interface.</param> /// <param name="configurationManager">The server configuration manager.</param> + /// <param name="configuration">The startup Configuration.</param> /// <returns>The updated service collection.</returns> - public static IServiceCollection AddJellyfinDbContext(this IServiceCollection serviceCollection, IServerConfigurationManager configurationManager) + public static IServiceCollection AddJellyfinDbContext( + this IServiceCollection serviceCollection, + IServerConfigurationManager configurationManager, + IConfiguration configuration) { var efCoreConfiguration = configurationManager.GetConfiguration<DatabaseConfigurationOptions>("database"); var providers = GetSupportedDbProviders(); @@ -55,11 +60,22 @@ public static class ServiceCollectionExtensions if (efCoreConfiguration?.DatabaseType is null) { - // when nothing is setup via new Database configuration, fallback to SqLite with default settings. - efCoreConfiguration = new DatabaseConfigurationOptions() + var cmdMigrationArgument = configuration.GetValue<string>("migration-provider"); + if (!string.IsNullOrWhiteSpace(cmdMigrationArgument)) { - DatabaseType = "Jellyfin-SqLite", - }; + efCoreConfiguration = new DatabaseConfigurationOptions() + { + DatabaseType = cmdMigrationArgument, + }; + } + else + { + // when nothing is setup via new Database configuration, fallback to SqLite with default settings. + efCoreConfiguration = new DatabaseConfigurationOptions() + { + DatabaseType = "Jellyfin-SqLite", + }; + } } if (!providers.TryGetValue(efCoreConfiguration.DatabaseType, out providerFactory!)) |
