添加枚举时尝试运行到 PostGres 数据库的迁移时遇到错误。我正在使用 Dotnet5 和实体框架
更改类型ethicity_enum 添加值“hi”;
Npgsql.PostgresException (0x80004005): 25001: ALTER TYPE ... ADD 无法在事务块内运行
这是创建的迁移:
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterDatabase()
.Annotation("Npgsql:Enum:patient_ethnicity_enum", "afna,hi")
.OldAnnotation("Npgsql:Enum:patient_ethnicity_enum", "afna");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterDatabase()
.Annotation("Npgsql:Enum:patient_ethnicity_enum",
"afna")
.OldAnnotation("Npgsql:Enum:patient_ethnicity_enum",
"afna,hi");
}
有什么想法如何解决这个问题吗?
根据阿德里安的评论,我发现你可以这样做。
migrationBuilder.Sql("ALTER TYPE patient_ethnicity_enum ADD VALUE 'hi'", true);
migrationBuilder.AlterDatabase();
“true”参数用于抑制交易。
这可行,但并不理想,因为回滚迁移可能会导致实时数据出现严重问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)