parent
d8407e74e7
commit
6c7a578cb7
@ -0,0 +1,73 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using Dapper;
|
||||
using FluentMigrator;
|
||||
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||
|
||||
namespace NzbDrone.Core.Datastore.Migration
|
||||
{
|
||||
[Migration(060)]
|
||||
public class update_audio_types : NzbDroneMigrationBase
|
||||
{
|
||||
private readonly JsonSerializerOptions _serializerSettings;
|
||||
|
||||
public update_audio_types()
|
||||
{
|
||||
_serializerSettings = new JsonSerializerOptions
|
||||
{
|
||||
AllowTrailingCommas = true,
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
||||
PropertyNameCaseInsensitive = true,
|
||||
DictionaryKeyPolicy = JsonNamingPolicy.CamelCase,
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
WriteIndented = true
|
||||
};
|
||||
}
|
||||
|
||||
protected override void MainDbUpgrade()
|
||||
{
|
||||
Execute.WithConnection(GetEntries);
|
||||
}
|
||||
|
||||
private void GetEntries(IDbConnection conn, IDbTransaction tran)
|
||||
{
|
||||
var profiles = conn.Query<MetadataProfile059>($"SELECT \"Id\", \"SecondaryAlbumTypes\" FROM \"MetadataProfiles\"");
|
||||
|
||||
var corrected = new List<MetadataProfile059>();
|
||||
|
||||
foreach (var profile in profiles)
|
||||
{
|
||||
var oldTypes = JsonSerializer.Deserialize<List<SecondaryAlbumType059>>(profile.SecondaryAlbumTypes, _serializerSettings);
|
||||
|
||||
oldTypes.Add(new SecondaryAlbumType059
|
||||
{
|
||||
SecondaryAlbumType = 11,
|
||||
Allowed = false
|
||||
});
|
||||
|
||||
corrected.Add(new MetadataProfile059
|
||||
{
|
||||
Id = profile.Id,
|
||||
SecondaryAlbumTypes = JsonSerializer.Serialize(oldTypes, _serializerSettings)
|
||||
});
|
||||
}
|
||||
|
||||
var updateSql = $"UPDATE \"MetadataProfiles\" SET \"SecondaryAlbumTypes\" = @SecondaryAlbumTypes WHERE \"Id\" = @Id";
|
||||
conn.Execute(updateSql, corrected, transaction: tran);
|
||||
}
|
||||
|
||||
private class MetadataProfile059
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string SecondaryAlbumTypes { get; set; }
|
||||
}
|
||||
|
||||
private class SecondaryAlbumType059
|
||||
{
|
||||
public int SecondaryAlbumType { get; set; }
|
||||
public bool Allowed { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue