using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Managing.Infrastructure.Databases.Migrations
{
///
public partial class ChangeRequestIdToGuid : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
// Convert BundleBacktestRequests.RequestId from varchar to uuid
// First, ensure all values are valid UUIDs or convert them
migrationBuilder.Sql(@"
UPDATE ""BundleBacktestRequests""
SET ""RequestId"" = gen_random_uuid()::text
WHERE ""RequestId"" IS NULL OR ""RequestId"" = '' OR
""RequestId"" !~ '^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$';
");
// Now convert the column type using the USING clause
migrationBuilder.Sql(@"
ALTER TABLE ""BundleBacktestRequests""
ALTER COLUMN ""RequestId"" TYPE uuid USING ""RequestId""::uuid;
");
// Convert Backtests.RequestId from varchar to uuid
// First, ensure all values are valid UUIDs or convert them
migrationBuilder.Sql(@"
UPDATE ""Backtests""
SET ""RequestId"" = gen_random_uuid()::text
WHERE ""RequestId"" IS NULL OR ""RequestId"" = '' OR
""RequestId"" !~ '^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$';
");
// Now convert the column type using the USING clause
migrationBuilder.Sql(@"
ALTER TABLE ""Backtests""
ALTER COLUMN ""RequestId"" TYPE uuid USING ""RequestId""::uuid;
");
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
// Convert BundleBacktestRequests.RequestId from uuid back to varchar
migrationBuilder.Sql(@"
ALTER TABLE ""BundleBacktestRequests""
ALTER COLUMN ""RequestId"" TYPE character varying(255) USING ""RequestId""::text;
");
// Convert Backtests.RequestId from uuid back to varchar
migrationBuilder.Sql(@"
ALTER TABLE ""Backtests""
ALTER COLUMN ""RequestId"" TYPE character varying(255) USING ""RequestId""::text;
");
}
}
}