我正在尝试使用以下命令将 Postgres 集群从 PG 12 升级到 PG 15:
sudo pg_upgradecluster 12 main --method=link
我的集群使用一些表空间:
postgres=# SELECT oid, spcname, pg_tablespace_location(oid) FROM pg_tablespace;
oid | spcname | pg_tablespace_location
------------+--------------------+----------------------------------
1664 | pg_global |
1663 | default_old |
1905123481 | ts1 | /mnt/postgres/ts1
1905522771 | ts2 | /mnt/postgres/ts2
1905595436 | ts3 | /mnt/postgres/ts3
当我运行 pg_upgradecluster 脚本时,它立即失败并出现以下错误:
tablespace directory "" does not exist
所有表空间都位于不同的磁盘上
我已经将另一个没有表空间的集群从 PG 12 升级到 PG 15,没有任何错误。
我不明白现在该怎么办:(
有没有人以前遇到过这个问题并且知道如何解决它?
提前致谢
正如预期的那样,“pg_default”命名空间已被重命名,这就是 pg_upgradecluster 脚本立即失败的原因。
要解决这个问题,正如我之前留下的那样,简单的重命名是行不通的。我不得不更加狡猾一点:
瞧!:)