微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:pg_repack失败,错误:错误:列“ relhasoids”不存在

如何解决错误:pg_repack失败,错误:错误:列“ relhasoids”不存在

我正在使用pg_repack扩展对数据库表执行完全清除操作。到现在为止,我正在使用postgres-11。现在,我已将其升级到postgres-12.4。 升级后,当我再次开始进行全真空操作时,出现以下错误

   ERROR: pg_repack Failed with error: ERROR:  column "relhasoids" does not exist

详细内容

    pg_repack  -U postgres --no-order --no-kill-backend  --table channatest shiwangini

   ERROR: pg_repack Failed with error: ERROR:  column "relhasoids" does not exist
   LINE 19:         CASE WHEN relhasoids
                       ^
   QUERY:
   SELECT array_to_string(array_agg(param),',')
   FROM (
   -- table storage parameter
   SELECT unnest(reloptions) as param
   FROM pg_

如何避免在postgres -12版本中出现此问题?我已经尝试安装pg_repack12和仅在支持postgres -12的机器上安装pg_repack版本1.4.5。还是一样的错误

     /usr/pgsql-12/bin/pg_repack --version

     pg_repack 1.4.5

解决方法

PostgreSQL v12取消了relhasoids目录中的pg_class列,因为在v12中不再存在这种令人讨厌的概念。

您应该使用pg_repack的version 1.4.5或更高版本,其中已添加了对PostgreSQL v12的支持。

,

我的问题已在2020年9月30日最新的pg_repack版本中解决。pg_repack 1.4.6。

这是我所做的:

  • 卸载/删除所有旧的安装。
  • 安装了新版本的pg_repack。 -sudo yum install pg_repack12
  • 已连接到数据库删除了现有扩展,并创建了一个新扩展。 下降扩展pg_repack; 创建扩展名pg_repack;
  • 重新运行重新包装。这次我能够成功地重新打包。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。