aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua M. Boniface <joshua@boniface.me>2025-09-28 12:44:09 -0400
committerGitHub <noreply@github.com>2025-09-28 12:44:09 -0400
commitd483c3efe65e54613dd22fd36fcf4dced085c3b9 (patch)
treeef0089cf645400be6489963c7213146e49d25d36
parent275c1a3cc160ad9d3a4ddae0c65467cdb1bdf1b3 (diff)
parent8ea9bece038816a797d985d95386d912268f70b2 (diff)
Merge pull request #14887 from JPVenson/bugfix/fixMigrationReferences
Add explicit reference check to migration
-rw-r--r--Jellyfin.Server/Migrations/Routines/MigrateLibraryDb.cs31
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);
}
}