correct migration number and fix for postgres

This commit is contained in:
Stevie Robinson 2025-08-31 15:25:54 +02:00 committed by Mark McDowall
parent c40fbeed50
commit 1610e54650

View file

@ -9,7 +9,7 @@
namespace NzbDrone.Core.Datastore.Migration namespace NzbDrone.Core.Datastore.Migration
{ {
[Migration(229)] [Migration(220)]
public class enable_season_pack_seeding_goal : NzbDroneMigrationBase public class enable_season_pack_seeding_goal : NzbDroneMigrationBase
{ {
protected override void MainDbUpgrade() protected override void MainDbUpgrade()
@ -21,37 +21,45 @@ private void SetSeasonPackSeedingGoal(IDbConnection conn, IDbTransaction tran)
{ {
var updatedIndexers = new List<object>(); var updatedIndexers = new List<object>();
using var selectCommand = conn.CreateCommand(); using (var selectCommand = conn.CreateCommand())
selectCommand.Transaction = tran;
selectCommand.CommandText = "SELECT * FROM \"Indexers\"";
using var reader = selectCommand.ExecuteReader();
while (reader.Read())
{ {
var idIndex = reader.GetOrdinal("Id"); selectCommand.Transaction = tran;
var settingsIndex = reader.GetOrdinal("Settings"); selectCommand.CommandText = "SELECT * FROM \"Indexers\"";
var id = reader.GetInt32(idIndex); using (var reader = selectCommand.ExecuteReader())
var settings = Json.Deserialize<Dictionary<string, object>>(reader.GetString(settingsIndex));
if (settings.TryGetValue("seedCriteria", out var seedCriteriaToken) && seedCriteriaToken is JObject seedCriteria)
{ {
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<Dictionary<string, object>>(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,
});
} }
} }
} }