diff options
| author | JPVenson <github@jpb.email> | 2025-09-28 08:46:31 +0000 |
|---|---|---|
| committer | JPVenson <github@jpb.email> | 2025-09-28 08:46:31 +0000 |
| commit | 8ea9bece038816a797d985d95386d912268f70b2 (patch) | |
| tree | 9d239106167b5e9d6e6856c80a7503530d31da94 | |
| parent | baa7f5f0b02df1ca755addac661d21286510512b (diff) | |
Add explicit reference check to migration
| -rw-r--r-- | Jellyfin.Server/Migrations/Routines/MigrateLibraryDb.cs | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/Jellyfin.Server/Migrations/Routines/MigrateLibraryDb.cs b/Jellyfin.Server/Migrations/Routines/MigrateLibraryDb.cs index 8c775ab78..b90da9f7d 100644 --- a/Jellyfin.Server/Migrations/Routines/MigrateLibraryDb.cs +++ b/Jellyfin.Server/Migrations/Routines/MigrateLibraryDb.cs @@ -257,6 +257,11 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine continue; } + if (!baseItemIds.Contains(refItem.Id)) + { + continue; + } + userData.ItemId = refItem.Id; operation.JellyfinDbContext.UserData.Add(userData); } @@ -287,7 +292,13 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine { foreach (SqliteDataReader dto in connection.Query(mediaStreamQuery)) { - operation.JellyfinDbContext.MediaStreamInfos.Add(GetMediaStream(dto)); + var entity = GetMediaStream(dto); + if (!baseItemIds.Contains(entity.ItemId)) + { + continue; + } + + operation.JellyfinDbContext.MediaStreamInfos.Add(entity); } } @@ -310,7 +321,13 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine { foreach (SqliteDataReader dto in connection.Query(mediaAttachmentQuery)) { - operation.JellyfinDbContext.AttachmentStreamInfos.Add(GetMediaAttachment(dto)); + var entity = GetMediaAttachment(dto); + if (!baseItemIds.Contains(entity.ItemId)) + { + continue; + } + + operation.JellyfinDbContext.AttachmentStreamInfos.Add(entity); } } @@ -396,6 +413,11 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine foreach (SqliteDataReader dto in connection.Query(chapterQuery)) { var chapter = GetChapter(dto); + if (!baseItemIds.Contains(chapter.ItemId)) + { + continue; + } + operation.JellyfinDbContext.Chapters.Add(chapter); } } @@ -422,6 +444,11 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine foreach (SqliteDataReader dto in connection.Query(ancestorIdsQuery)) { var ancestorId = GetAncestorId(dto); + if (!baseItemIds.Contains(ancestorId.ItemId) || !baseItemIds.Contains(ancestorId.ParentItemId)) + { + continue; + } + operation.JellyfinDbContext.AncestorIds.Add(ancestorId); } } |
