From 1610e546500a0278862b43ae2bb966a11a646536 Mon Sep 17 00:00:00 2001 From: Stevie Robinson Date: Sun, 31 Aug 2025 15:25:54 +0200 Subject: [PATCH] correct migration number and fix for postgres --- .../220_enable_season_pack_seeding_goal.cs | 58 +++++++++++-------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/src/NzbDrone.Core/Datastore/Migration/220_enable_season_pack_seeding_goal.cs b/src/NzbDrone.Core/Datastore/Migration/220_enable_season_pack_seeding_goal.cs index bc17da6d2..fc4814a7d 100644 --- a/src/NzbDrone.Core/Datastore/Migration/220_enable_season_pack_seeding_goal.cs +++ b/src/NzbDrone.Core/Datastore/Migration/220_enable_season_pack_seeding_goal.cs @@ -9,7 +9,7 @@ namespace NzbDrone.Core.Datastore.Migration { - [Migration(229)] + [Migration(220)] public class enable_season_pack_seeding_goal : NzbDroneMigrationBase { protected override void MainDbUpgrade() @@ -21,37 +21,45 @@ private void SetSeasonPackSeedingGoal(IDbConnection conn, IDbTransaction tran) { var updatedIndexers = new List(); - using var selectCommand = conn.CreateCommand(); - - selectCommand.Transaction = tran; - selectCommand.CommandText = "SELECT * FROM \"Indexers\""; - - using var reader = selectCommand.ExecuteReader(); - - while (reader.Read()) + using (var selectCommand = conn.CreateCommand()) { - var idIndex = reader.GetOrdinal("Id"); - var settingsIndex = reader.GetOrdinal("Settings"); + selectCommand.Transaction = tran; + selectCommand.CommandText = "SELECT * FROM \"Indexers\""; - var id = reader.GetInt32(idIndex); - var settings = Json.Deserialize>(reader.GetString(settingsIndex)); - - if (settings.TryGetValue("seedCriteria", out var seedCriteriaToken) && seedCriteriaToken is JObject seedCriteria) + using (var reader = selectCommand.ExecuteReader()) { - if (seedCriteria?["seasonPackSeedTime"] != null) + var indexerSettings = new List<(int Id, string Settings)>(); + + while (reader.Read()) { - seedCriteria["seasonPackSeedGoal"] = 1; + var idIndex = reader.GetOrdinal("Id"); + var settingsIndex = reader.GetOrdinal("Settings"); - if (seedCriteria["seedRatio"] != null) + indexerSettings.Add((reader.GetInt32(idIndex), reader.GetString(settingsIndex))); + } + + foreach (var indexerSetting in indexerSettings) + { + var settings = Json.Deserialize>(indexerSetting.Settings); + + if (settings.TryGetValue("seedCriteria", out var seedCriteriaToken) && seedCriteriaToken is JObject seedCriteria) { - seedCriteria["seasonPackSeedRatio"] = seedCriteria["seedRatio"]; + if (seedCriteria?["seasonPackSeedTime"] != null) + { + seedCriteria["seasonPackSeedGoal"] = 1; + + if (seedCriteria["seedRatio"] != null) + { + seedCriteria["seasonPackSeedRatio"] = seedCriteria["seedRatio"]; + } + + updatedIndexers.Add(new + { + Settings = settings.ToJson(), + Id = indexerSetting.Id, + }); + } } - - updatedIndexers.Add(new - { - Settings = settings.ToJson(), - Id = id, - }); } } }