我正在使用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发布于 2020-09-09 16:06:08
PostgreSQL v12已经删除了pg_class目录中的relhasoids列,因为这个令人讨厌的概念在v12中已不复存在。
您应该使用pg_repack的version 1.4.5或更高版本,其中添加了对PostgreSQL v12的支持。
发布于 2020-10-09 02:40:31
我的问题在2020年9月30日的最新pg_repack版本中得到了解决。pg_repack 1.4.6。
下面是我所做的:
https://stackoverflow.com/questions/63806820
复制相似问题