diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/FixMultipleMonitoredEditions.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/FixMultipleMonitoredEditions.cs new file mode 100644 index 0000000000..c613b5dd78 --- /dev/null +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/FixMultipleMonitoredEditions.cs @@ -0,0 +1,30 @@ +using Dapper; +using NzbDrone.Core.Datastore; + +namespace NzbDrone.Core.Housekeeping.Housekeepers +{ + public class FixMultipleMonitoredEditions : IHousekeepingTask + { + private readonly IMainDatabase _database; + + public FixMultipleMonitoredEditions(IMainDatabase database) + { + _database = database; + } + + public void Clean() + { + using var mapper = _database.OpenConnection(); + + mapper.Execute(@"UPDATE ""Editions"" + SET ""Monitored"" = 0 + WHERE ""Id"" IN ( + SELECT MIN(""Id"") + FROM ""Editions"" + WHERE ""Monitored"" = 1 + GROUP BY ""BookId"" + HAVING COUNT(""BookId"") > 1 + )"); + } + } +}