Fix UserData cleanup task and queries (#14280)

This commit is contained in:
JPVenson 2025-06-12 02:30:57 +03:00 committed by GitHub
parent ea34a38f09
commit 1c4c9cf733
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 6 additions and 6 deletions

View File

@ -52,7 +52,7 @@ public class CleanupUserDataTask : IScheduledTask
public async Task ExecuteAsync(IProgress<double> progress, CancellationToken cancellationToken) public async Task ExecuteAsync(IProgress<double> progress, CancellationToken cancellationToken)
{ {
const int LimitDays = 90; const int LimitDays = 90;
var userDataDate = DateTimeOffset.UtcNow.AddDays(LimitDays * -1); var userDataDate = DateTime.UtcNow.AddDays(LimitDays * -1);
var dbContext = await _dbProvider.CreateDbContextAsync(cancellationToken).ConfigureAwait(false); var dbContext = await _dbProvider.CreateDbContextAsync(cancellationToken).ConfigureAwait(false);
await using (dbContext.ConfigureAwait(false)) await using (dbContext.ConfigureAwait(false))
{ {

View File

@ -108,7 +108,7 @@ public sealed class BaseItemRepository
using var context = _dbProvider.CreateDbContext(); using var context = _dbProvider.CreateDbContext();
using var transaction = context.Database.BeginTransaction(); using var transaction = context.Database.BeginTransaction();
var date = (DateTimeOffset?)DateTimeOffset.Now; var date = (DateTime?)DateTime.UtcNow;
// Detach all user watch data // Detach all user watch data
context.UserData.Where(e => e.ItemId == id) context.UserData.Where(e => e.ItemId == id)
.ExecuteUpdate(e => e .ExecuteUpdate(e => e
@ -529,7 +529,7 @@ public sealed class BaseItemRepository
{ {
// reattach old userData entries // reattach old userData entries
var userKeys = item.UserDataKey.ToArray(); var userKeys = item.UserDataKey.ToArray();
var retentionDate = (DateTimeOffset?)null; var retentionDate = (DateTime?)null;
context.UserData context.UserData
.Where(e => e.ItemId == PlaceholderId) .Where(e => e.ItemId == PlaceholderId)
.Where(e => userKeys.Contains(e.CustomDataKey)) .Where(e => userKeys.Contains(e.CustomDataKey))

View File

@ -71,7 +71,7 @@ public class UserData
/// <summary> /// <summary>
/// Gets or Sets the date the referenced <see cref="Item"/> has been deleted. /// Gets or Sets the date the referenced <see cref="Item"/> has been deleted.
/// </summary> /// </summary>
public DateTimeOffset? RetentionDate { get; set; } public DateTime? RetentionDate { get; set; }
/// <summary> /// <summary>
/// Gets or sets the key. /// Gets or sets the key.

View File

@ -15,7 +15,7 @@ namespace Jellyfin.Server.Implementations.Migrations
protected override void BuildModel(ModelBuilder modelBuilder) protected override void BuildModel(ModelBuilder modelBuilder)
{ {
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "9.0.5"); modelBuilder.HasAnnotation("ProductVersion", "9.0.6");
modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.AccessSchedule", b => modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.AccessSchedule", b =>
{ {
@ -1388,7 +1388,7 @@ namespace Jellyfin.Server.Implementations.Migrations
b.Property<double?>("Rating") b.Property<double?>("Rating")
.HasColumnType("REAL"); .HasColumnType("REAL");
b.Property<DateTimeOffset?>("RetentionDate") b.Property<DateTime?>("RetentionDate")
.HasColumnType("TEXT"); .HasColumnType("TEXT");
b.Property<int?>("SubtitleStreamIndex") b.Property<int?>("SubtitleStreamIndex")