parent
f225a742cc
commit
c3c9b9afbb
@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Dapper;
|
||||
using FluentMigrator;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NzbDrone.Common.Serializer;
|
||||
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||
|
||||
namespace NzbDrone.Core.Datastore.Migration
|
||||
{
|
||||
[Migration(033)]
|
||||
public class metadata_profile_ignored_to_list : NzbDroneMigrationBase
|
||||
{
|
||||
protected override void MainDbUpgrade()
|
||||
{
|
||||
Execute.WithConnection(MigrateMetadataProfileIgnored);
|
||||
}
|
||||
|
||||
private void MigrateMetadataProfileIgnored(IDbConnection conn, IDbTransaction tran)
|
||||
{
|
||||
var updatedMetadataProfiles = new List<object>();
|
||||
|
||||
using (var selectCommand = conn.CreateCommand())
|
||||
{
|
||||
selectCommand.Transaction = tran;
|
||||
selectCommand.CommandText = "SELECT \"Id\", \"Ignored\" FROM \"MetadataProfiles\"";
|
||||
|
||||
using var reader = selectCommand.ExecuteReader();
|
||||
|
||||
while (reader.Read())
|
||||
{
|
||||
var id = reader.GetInt32(0);
|
||||
var ignored = reader.GetValue(1).ToString() ?? string.Empty;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(ignored))
|
||||
{
|
||||
try
|
||||
{
|
||||
JsonConvert.DeserializeObject<JArray>(ignored);
|
||||
|
||||
continue;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
|
||||
ignored = ignored
|
||||
.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries)
|
||||
.Distinct()
|
||||
.ToJson();
|
||||
|
||||
updatedMetadataProfiles.Add(new
|
||||
{
|
||||
Id = id,
|
||||
Ignored = ignored
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var updatedMetadataProfilesSql = "UPDATE \"MetadataProfiles\" SET \"Ignored\" = @Ignored WHERE \"Id\" = @Id";
|
||||
conn.Execute(updatedMetadataProfilesSql, updatedMetadataProfiles, transaction: tran);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue