mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Merge pull request #4699 from crobibero/display_prefs_index
Fix CustomItemDisplayPreferences unique key collision in the migration (cherry picked from commit b3caa51173080ec813054c78ae9a66a685288de4) Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
This commit is contained in:
parent
91656acabb
commit
b1af8db423
@ -81,6 +81,7 @@ namespace Jellyfin.Server.Migrations.Routines
|
|||||||
{ "unstable", ChromecastVersion.Unstable }
|
{ "unstable", ChromecastVersion.Unstable }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var customDisplayPrefs = new HashSet<string>();
|
||||||
var dbFilePath = Path.Combine(_paths.DataPath, DbFilename);
|
var dbFilePath = Path.Combine(_paths.DataPath, DbFilename);
|
||||||
using (var connection = SQLite3.Open(dbFilePath, ConnectionFlags.ReadOnly, null))
|
using (var connection = SQLite3.Open(dbFilePath, ConnectionFlags.ReadOnly, null))
|
||||||
{
|
{
|
||||||
@ -185,7 +186,13 @@ namespace Jellyfin.Server.Migrations.Routines
|
|||||||
|
|
||||||
foreach (var (key, value) in dto.CustomPrefs)
|
foreach (var (key, value) in dto.CustomPrefs)
|
||||||
{
|
{
|
||||||
dbContext.Add(new CustomItemDisplayPreferences(displayPreferences.UserId, itemId, displayPreferences.Client, key, value));
|
// Custom display preferences can have a key collision.
|
||||||
|
var indexKey = $"{displayPreferences.UserId}|{itemId}|{displayPreferences.Client}|{key}";
|
||||||
|
if (!customDisplayPrefs.Contains(indexKey))
|
||||||
|
{
|
||||||
|
dbContext.Add(new CustomItemDisplayPreferences(displayPreferences.UserId, itemId, displayPreferences.Client, key, value));
|
||||||
|
customDisplayPrefs.Add(indexKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dbContext.Add(displayPreferences);
|
dbContext.Add(displayPreferences);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user