dramaling-vocab-learning/backend/DramaLing.Api/Migrations/20250930155857_AddEnglishLe...

45 lines
1.3 KiB
C#

using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DramaLing.Api.Migrations
{
/// <inheritdoc />
public partial class AddEnglishLevelNumeric : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "english_level_numeric",
table: "user_profiles",
type: "INTEGER",
nullable: false,
defaultValue: 2);
// 轉換現有資料:將字串格式的 english_level 轉換為數字格式
migrationBuilder.Sql(@"
UPDATE user_profiles
SET english_level_numeric =
CASE english_level
WHEN 'A1' THEN 1
WHEN 'A2' THEN 2
WHEN 'B1' THEN 3
WHEN 'B2' THEN 4
WHEN 'C1' THEN 5
WHEN 'C2' THEN 6
ELSE 2 -- 預設 A2
END
");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "english_level_numeric",
table: "user_profiles");
}
}
}