using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace ErsatzTV.Infrastructure.MySql.Migrations { /// public partial class Fix_DuplicateNames : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.Sql( """ UPDATE Block a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM Block ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE BlockGroup a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM BlockGroup ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE ChannelWatermark a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM ChannelWatermark ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE Collection a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM Collection ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE Deco a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM Deco ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE DecoGroup a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM DecoGroup ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE DecoTemplate a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM DecoTemplate ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE DecoTemplateGroup a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM DecoTemplateGroup ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE FillerPreset a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM FillerPreset ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE MultiCollection a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM MultiCollection ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE Playlist a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM Playlist ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE ProgramSchedule a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM ProgramSchedule ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE RerunCollection a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM RerunCollection ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE SmartCollection a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM SmartCollection ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE Template a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM Template ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); migrationBuilder.Sql( """ UPDATE TemplateGroup a JOIN ( SELECT Id, ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum FROM TemplateGroup ) n ON a.Id = n.Id SET a.Name = CONCAT(a.Name, ' (', n.RowNum - 1, ')') WHERE n.RowNum > 1; """); } /// protected override void Down(MigrationBuilder migrationBuilder) { } } }