仅将实体迁移应用于某些环境

Apply Entity Migration Only to Certain Environments

我有 3 个现有环境开发、暂存和生产,每个环境都有几个数据库。我希望能够通过迁移 运行 一个 sql 脚本,但它只影响暂存和生产。

我已经创建了迁移并插入了 SQL 脚本。

public partial class TrimPTPrimaryPCCodes : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.Sql("UPDATE public.\"Table\" set \"Code\" = TRIM(\"Code\");");
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {

        }
    }

如果环境是 "Production",我如何才能应用此迁移?

如果您的作用域中有 IHostingEnvironment,您可以使用 IHostingEnvironment::IsProduction 方法或静态方法 System.GetEnvironmentVariable ("ASPNETCORE_ENVIRONMENT")

检查 ASPNETCORE_ENVIRONMENT 变量的值