错误: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,并且pg_repack版本1.4.5只安装在我的机器上,它支持postgres-12。还是同样的错误。

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

PostgreSQL v12已经取消了pg_class目录的relhasoids列,因为v12中不再存在取消投递的概念。

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

我的问题在2020年9月30日最新发布的pg_repack中得到了解决。第1.4.6页。

以下是我所做的:

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

相关内容

  • 没有找到相关文章

最新更新