mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.7 KiB
55 lines
1.7 KiB
using Microsoft.EntityFrameworkCore.Migrations; |
|
|
|
#nullable disable |
|
|
|
namespace ErsatzTV.Infrastructure.MySql.Migrations |
|
{ |
|
/// <inheritdoc /> |
|
public partial class Fix_SmartCollectionNameSensitivity : Migration |
|
{ |
|
/// <inheritdoc /> |
|
protected override void Up(MigrationBuilder migrationBuilder) |
|
{ |
|
migrationBuilder.Sql( |
|
@" |
|
UPDATE SmartCollection sc |
|
JOIN ( |
|
SELECT |
|
Id, |
|
ROW_NUMBER() OVER (PARTITION BY LOWER(Name) ORDER BY Id) as RowNum |
|
FROM SmartCollection |
|
) n ON sc.Id = n.Id |
|
SET sc.Name = CONCAT(sc.Name, ' (', n.RowNum - 1, ')') |
|
WHERE n.RowNum > 1; |
|
"); |
|
|
|
migrationBuilder.AlterColumn<string>( |
|
name: "Name", |
|
table: "SmartCollection", |
|
type: "varchar(255)", |
|
nullable: true, |
|
collation: "utf8mb4_general_ci", |
|
oldClrType: typeof(string), |
|
oldType: "varchar(255)", |
|
oldNullable: true) |
|
.Annotation("MySql:CharSet", "utf8mb4") |
|
.OldAnnotation("MySql:CharSet", "utf8mb4"); |
|
} |
|
|
|
/// <inheritdoc /> |
|
protected override void Down(MigrationBuilder migrationBuilder) |
|
{ |
|
migrationBuilder.AlterColumn<string>( |
|
name: "Name", |
|
table: "SmartCollection", |
|
type: "varchar(255)", |
|
nullable: true, |
|
oldClrType: typeof(string), |
|
oldType: "varchar(255)", |
|
oldNullable: true, |
|
oldCollation: "utf8mb4_general_ci") |
|
.Annotation("MySql:CharSet", "utf8mb4") |
|
.OldAnnotation("MySql:CharSet", "utf8mb4"); |
|
} |
|
} |
|
}
|
|
|