132 lines
5.2 KiB
C#
132 lines
5.2 KiB
C#
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
namespace FileService.Infrastructure.Migrations
|
|
{
|
|
[DbContext(typeof(FileDbContext))]
|
|
[Migration("20260909000300_AsyncUploadResult")]
|
|
public partial class AsyncUploadResult : Migration
|
|
{
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
AlterStringColumns(migrationBuilder, narrowing: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "ChatType",
|
|
table: "upload_files",
|
|
type: "varchar(16)",
|
|
maxLength: 16,
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<bool>(
|
|
name: "IsPublic",
|
|
table: "upload_files",
|
|
type: "tinyint(1)",
|
|
nullable: false,
|
|
defaultValue: false);
|
|
|
|
migrationBuilder.AddColumn<Guid>(
|
|
name: "SourceTaskId",
|
|
table: "upload_files",
|
|
type: "char(36)",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<Guid>(
|
|
name: "TargetId",
|
|
table: "upload_files",
|
|
type: "char(36)",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "ChatType",
|
|
table: "upload_tasks",
|
|
type: "varchar(16)",
|
|
maxLength: 16,
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "FailureReason",
|
|
table: "upload_tasks",
|
|
type: "varchar(500)",
|
|
maxLength: 500,
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<Guid>(
|
|
name: "ResultFileId",
|
|
table: "upload_tasks",
|
|
type: "char(36)",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<Guid>(
|
|
name: "TargetId",
|
|
table: "upload_tasks",
|
|
type: "char(36)",
|
|
nullable: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_upload_files_SourceTaskId",
|
|
table: "upload_files",
|
|
column: "SourceTaskId",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_upload_files_checksum",
|
|
table: "upload_files",
|
|
columns: new[] { "checksum_algorithm", "checksum_value", "IsDeleted" });
|
|
}
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropIndex("IX_upload_files_checksum", "upload_files");
|
|
migrationBuilder.DropIndex("IX_upload_files_SourceTaskId", "upload_files");
|
|
migrationBuilder.DropColumn("ChatType", "upload_files");
|
|
migrationBuilder.DropColumn("IsPublic", "upload_files");
|
|
migrationBuilder.DropColumn("SourceTaskId", "upload_files");
|
|
migrationBuilder.DropColumn("TargetId", "upload_files");
|
|
migrationBuilder.DropColumn("ChatType", "upload_tasks");
|
|
migrationBuilder.DropColumn("FailureReason", "upload_tasks");
|
|
migrationBuilder.DropColumn("ResultFileId", "upload_tasks");
|
|
migrationBuilder.DropColumn("TargetId", "upload_tasks");
|
|
AlterStringColumns(migrationBuilder, narrowing: false);
|
|
}
|
|
|
|
|
|
private static void AlterStringColumns(MigrationBuilder migrationBuilder, bool narrowing)
|
|
{
|
|
var columns = new (string Table, string Column, int Length, bool Nullable)[]
|
|
{
|
|
("upload_files", "FileName", 255, false),
|
|
("upload_files", "ContentType", 255, false),
|
|
("upload_files", "checksum_algorithm", 16, false),
|
|
("upload_files", "checksum_value", 128, false),
|
|
("upload_files", "storage_provider", 64, false),
|
|
("upload_files", "storage_bucket", 255, false),
|
|
("upload_files", "storage_key", 1024, false),
|
|
("upload_files", "storage_region", 128, true),
|
|
("upload_tasks", "FileName", 255, false),
|
|
("upload_tasks", "ContentType", 255, false),
|
|
("upload_tasks", "checksum_algorithm", 16, false),
|
|
("upload_tasks", "checksum_value", 128, false),
|
|
("upload_tasks", "storage_provider", 64, false),
|
|
("upload_tasks", "storage_bucket", 255, false),
|
|
("upload_tasks", "storage_key", 1024, false),
|
|
("upload_tasks", "storage_region", 128, true)
|
|
};
|
|
|
|
foreach (var (table, column, length, nullable) in columns)
|
|
{
|
|
migrationBuilder.AlterColumn<string>(
|
|
name: column,
|
|
table: table,
|
|
type: narrowing ? $"varchar({length})" : "longtext",
|
|
maxLength: narrowing ? length : null,
|
|
nullable: nullable,
|
|
oldClrType: typeof(string),
|
|
oldType: narrowing ? "longtext" : $"varchar({length})",
|
|
oldMaxLength: narrowing ? null : length,
|
|
oldNullable: nullable);
|
|
}
|
|
}
|
|
}
|
|
}
|