aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2025-01-27 17:20:14 +0000
committerJPVenson <github@jpb.email>2025-01-27 17:20:14 +0000
commit844646e2fe6d726edc8e086cc465396303d24f29 (patch)
treeb5e21a53df12d963a93047f9b1d959248cf18a5d /Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs
parent9d1c4ea169a15d580923aefb0ec43c2b6be5b3a6 (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.cs26
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!))