Fixed migration timer

This commit is contained in:
JPVenson 2024-11-10 19:25:17 +00:00
parent b5bb2261bc
commit 73ddbeb4c1

View File

@ -66,14 +66,17 @@ public class MigrateLibraryDb : IMigrationRoutine
var dataPath = _paths.DataPath; var dataPath = _paths.DataPath;
var libraryDbPath = Path.Combine(dataPath, DbFilename); var libraryDbPath = Path.Combine(dataPath, DbFilename);
using var connection = new SqliteConnection($"Filename={libraryDbPath}"); using var connection = new SqliteConnection($"Filename={libraryDbPath}");
var migrationTotalTime = TimeSpan.Zero;
var stopwatch = new Stopwatch(); var stopwatch = new Stopwatch();
stopwatch.Start(); stopwatch.Start();
connection.Open(); connection.Open();
using var dbContext = _provider.CreateDbContext(); using var dbContext = _provider.CreateDbContext();
var stepElapsed = stopwatch.Elapsed; migrationTotalTime += stopwatch.Elapsed;
_logger.LogInformation("Saving UserData entries took {0}.", stepElapsed); _logger.LogInformation("Saving UserData entries took {0}.", stopwatch.Elapsed);
stopwatch.Restart();
_logger.LogInformation("Start moving TypedBaseItem."); _logger.LogInformation("Start moving TypedBaseItem.");
var typedBaseItemsQuery = "SELECT guid, type, data, StartDate, EndDate, ChannelId, IsMovie, IsSeries, EpisodeTitle, IsRepeat, CommunityRating, CustomRating, IndexNumber, IsLocked, PreferredMetadataLanguage, PreferredMetadataCountryCode, Width, Height, DateLastRefreshed, Name, Path, PremiereDate, Overview, ParentIndexNumber, ProductionYear, OfficialRating, ForcedSortName, RunTimeTicks, Size, DateCreated, DateModified, Genres, ParentId, Audio, ExternalServiceId, IsInMixedFolder, DateLastSaved, LockedFields, Studios, Tags, TrailerTypes, OriginalTitle, PrimaryVersionId, DateLastMediaAdded, Album, LUFS, NormalizationGain, CriticRating, IsVirtualItem, SeriesName, UserDataKey, SeasonName, SeasonId, SeriesId, PresentationUniqueKey, InheritedParentalRatingValue, ExternalSeriesId, Tagline, ProviderIds, Images, ProductionLocations, ExtraIds, TotalBitrate, ExtraType, Artists, AlbumArtists, ExternalId, SeriesPresentationUniqueKey, ShowId, OwnerId FROM TypedBaseItems"; var typedBaseItemsQuery = "SELECT guid, type, data, StartDate, EndDate, ChannelId, IsMovie, IsSeries, EpisodeTitle, IsRepeat, CommunityRating, CustomRating, IndexNumber, IsLocked, PreferredMetadataLanguage, PreferredMetadataCountryCode, Width, Height, DateLastRefreshed, Name, Path, PremiereDate, Overview, ParentIndexNumber, ProductionYear, OfficialRating, ForcedSortName, RunTimeTicks, Size, DateCreated, DateModified, Genres, ParentId, Audio, ExternalServiceId, IsInMixedFolder, DateLastSaved, LockedFields, Studios, Tags, TrailerTypes, OriginalTitle, PrimaryVersionId, DateLastMediaAdded, Album, LUFS, NormalizationGain, CriticRating, IsVirtualItem, SeriesName, UserDataKey, SeasonName, SeasonId, SeriesId, PresentationUniqueKey, InheritedParentalRatingValue, ExternalSeriesId, Tagline, ProviderIds, Images, ProductionLocations, ExtraIds, TotalBitrate, ExtraType, Artists, AlbumArtists, ExternalId, SeriesPresentationUniqueKey, ShowId, OwnerId FROM TypedBaseItems";
@ -89,8 +92,9 @@ public class MigrateLibraryDb : IMigrationRoutine
_logger.LogInformation("Try saving {0} BaseItem entries.", dbContext.BaseItems.Local.Count); _logger.LogInformation("Try saving {0} BaseItem entries.", dbContext.BaseItems.Local.Count);
dbContext.SaveChanges(); dbContext.SaveChanges();
stepElapsed = stopwatch.Elapsed - stepElapsed; migrationTotalTime += stopwatch.Elapsed;
_logger.LogInformation("Saving BaseItems entries took {0}.", stepElapsed); _logger.LogInformation("Saving BaseItems entries took {0}.", stopwatch.Elapsed);
stopwatch.Restart();
_logger.LogInformation("Start moving UserData."); _logger.LogInformation("Start moving UserData.");
var queryResult = connection.Query("SELECT key, userId, rating, played, playCount, isFavorite, playbackPositionTicks, lastPlayedDate, AudioStreamIndex, SubtitleStreamIndex FROM UserDatas"); var queryResult = connection.Query("SELECT key, userId, rating, played, playCount, isFavorite, playbackPositionTicks, lastPlayedDate, AudioStreamIndex, SubtitleStreamIndex FROM UserDatas");
@ -133,8 +137,10 @@ public class MigrateLibraryDb : IMigrationRoutine
_logger.LogInformation("Try saving {0} MediaStreamInfos entries.", dbContext.MediaStreamInfos.Local.Count); _logger.LogInformation("Try saving {0} MediaStreamInfos entries.", dbContext.MediaStreamInfos.Local.Count);
dbContext.SaveChanges(); dbContext.SaveChanges();
stepElapsed = stopwatch.Elapsed - stepElapsed;
_logger.LogInformation("Saving MediaStreamInfos entries took {0}.", stepElapsed); migrationTotalTime += stopwatch.Elapsed;
_logger.LogInformation("Saving MediaStreamInfos entries took {0}.", stopwatch.Elapsed);
stopwatch.Reset();
_logger.LogInformation("Start moving People."); _logger.LogInformation("Start moving People.");
var personsQuery = "select ItemId, Name, Role, PersonType, SortOrder from People p"; var personsQuery = "select ItemId, Name, Role, PersonType, SortOrder from People p";
@ -180,8 +186,9 @@ public class MigrateLibraryDb : IMigrationRoutine
_logger.LogInformation("Try saving {0} People entries.", dbContext.MediaStreamInfos.Local.Count); _logger.LogInformation("Try saving {0} People entries.", dbContext.MediaStreamInfos.Local.Count);
dbContext.SaveChanges(); dbContext.SaveChanges();
stepElapsed = stopwatch.Elapsed - stepElapsed; migrationTotalTime += stopwatch.Elapsed;
_logger.LogInformation("Saving People entries took {0}.", stepElapsed); _logger.LogInformation("Saving People entries took {0}.", stopwatch.Elapsed);
stopwatch.Reset();
_logger.LogInformation("Start moving ItemValues."); _logger.LogInformation("Start moving ItemValues.");
// do not migrate inherited types as they are now properly mapped in search and lookup. // do not migrate inherited types as they are now properly mapped in search and lookup.
@ -213,8 +220,9 @@ public class MigrateLibraryDb : IMigrationRoutine
_logger.LogInformation("Try saving {0} ItemValues entries.", dbContext.ItemValues.Local.Count); _logger.LogInformation("Try saving {0} ItemValues entries.", dbContext.ItemValues.Local.Count);
dbContext.SaveChanges(); dbContext.SaveChanges();
stepElapsed = stopwatch.Elapsed - stepElapsed; migrationTotalTime += stopwatch.Elapsed;
_logger.LogInformation("Saving People ItemValues took {0}.", stepElapsed); _logger.LogInformation("Saving People ItemValues took {0}.", stopwatch.Elapsed);
stopwatch.Reset();
_logger.LogInformation("Start moving Chapters."); _logger.LogInformation("Start moving Chapters.");
var chapterQuery = "select ItemId,StartPositionTicks,Name,ImagePath,ImageDateModified,ChapterIndex from Chapters2"; var chapterQuery = "select ItemId,StartPositionTicks,Name,ImagePath,ImageDateModified,ChapterIndex from Chapters2";
@ -228,8 +236,9 @@ public class MigrateLibraryDb : IMigrationRoutine
_logger.LogInformation("Try saving {0} Chapters entries.", dbContext.Chapters.Local.Count); _logger.LogInformation("Try saving {0} Chapters entries.", dbContext.Chapters.Local.Count);
dbContext.SaveChanges(); dbContext.SaveChanges();
stepElapsed = stopwatch.Elapsed - stepElapsed; migrationTotalTime += stopwatch.Elapsed;
_logger.LogInformation("Saving Chapters took {0}.", stepElapsed); _logger.LogInformation("Saving Chapters took {0}.", stopwatch.Elapsed);
stopwatch.Reset();
_logger.LogInformation("Start moving AncestorIds."); _logger.LogInformation("Start moving AncestorIds.");
var ancestorIdsQuery = "select ItemId, AncestorId, AncestorIdText from AncestorIds"; var ancestorIdsQuery = "select ItemId, AncestorId, AncestorIdText from AncestorIds";
@ -256,8 +265,9 @@ public class MigrateLibraryDb : IMigrationRoutine
_logger.LogInformation("Try saving {0} AncestorIds entries.", dbContext.Chapters.Local.Count); _logger.LogInformation("Try saving {0} AncestorIds entries.", dbContext.Chapters.Local.Count);
dbContext.SaveChanges(); dbContext.SaveChanges();
stepElapsed = stopwatch.Elapsed - stepElapsed; migrationTotalTime += stopwatch.Elapsed;
_logger.LogInformation("Saving AncestorIds took {0}.", stepElapsed); _logger.LogInformation("Saving AncestorIds took {0}.", stopwatch.Elapsed);
stopwatch.Reset();
connection.Close(); connection.Close();
_logger.LogInformation("Migration of the Library.db done."); _logger.LogInformation("Migration of the Library.db done.");