From 5465e0c69423506d6836f2a6b8aacfce8cb0501e Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Sat, 5 Sep 2026 07:34:38 +0200 Subject: Optimize the database on startup instead of before shutdown --- .../IJellyfinDatabaseProvider.cs | 2 +- .../SqliteDatabaseProvider.cs | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/Jellyfin.Database/Jellyfin.Database.Implementations/IJellyfinDatabaseProvider.cs b/src/Jellyfin.Database/Jellyfin.Database.Implementations/IJellyfinDatabaseProvider.cs index 87d87e92b8..a7b2aa493b 100644 --- a/src/Jellyfin.Database/Jellyfin.Database.Implementations/IJellyfinDatabaseProvider.cs +++ b/src/Jellyfin.Database/Jellyfin.Database.Implementations/IJellyfinDatabaseProvider.cs @@ -38,7 +38,7 @@ public interface IJellyfinDatabaseProvider /// /// If supported this should run any periodic maintaince tasks, reclaiming unused space and refreshing the query - /// planner statistics. Also used after migrations have modified the database. + /// planner statistics. Also runs on startup once all migrations have been applied. /// /// The token to abort the operation. /// A representing the asynchronous operation. diff --git a/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs b/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs index dff834bfec..6103ecd992 100644 --- a/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs +++ b/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs @@ -124,21 +124,11 @@ public sealed class SqliteDatabaseProvider : IJellyfinDatabaseProvider } /// - public async Task RunShutdownTask(CancellationToken cancellationToken) + public Task RunShutdownTask(CancellationToken cancellationToken) { - if (DbContextFactory is null) - { - return; - } - // Run before disposing the application - var context = await DbContextFactory.CreateDbContextAsync(cancellationToken).ConfigureAwait(false); - await using (context.ConfigureAwait(false)) - { - await context.Database.ExecuteSqlRawAsync("PRAGMA optimize", cancellationToken).ConfigureAwait(false); - } - SqliteConnection.ClearAllPools(); + return Task.CompletedTask; } /// -- cgit v1.2.3