错误:更改类型。。。添加不能在事务块内运行

我正在尝试向PostgreSQL中的现有类型添加新的类型值。但是我得到了以下错误

错误:更改类型。。。添加不能在事务块内运行

我用来向类型添加新值的查询是

更改类型public.request\u类型添加值“Check”;

实际上,我正在迁移文件中运行上述查询,该文件是使用节点pg migrate创建的

这里public是我的模式

知道为什么会失败吗

编辑:

在pgadmin中执行时,下面的查询执行良好

更改类型public.request\u类型添加值“Check”;

但当我通过节点pg migrate migrations运行上述命令时,它失败并抛出上述错误

如上所述,您不能在事务块内编辑枚举。但是你可以创建一个新的。以下是步骤:

  1. 将使用此类型的所有列/表的类型从request_type更改为varchar
更改表格名称
更改列名称类型VARCHAR(255);
  1. 再次删除并创建请求类型枚举:
删除类型(如果存在请求类型);
创建类型请求\u类型作为枚举(
“旧值1”,
“旧值2”,
“新值1”,
“新的_值_2”
);
  1. 将所有列/表的类型从varchar还原为request\u type(还原步骤一):
更改表格名称
更改列名称类型请求类型
使用(列名称::请求类型);

发表评论