fix: align backend APIs and upload flow
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user