Estou tentando atualizar um cluster Postgres de PG 12 para PG 15 usando este comando:
sudo pg_upgradecluster 12 main --method=link
Meu cluster usa alguns tablespaces:
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
Quando executo o script pg_upgradecluster, ele falha imediatamente com este erro:
tablespace directory "" does not exist
Todos os tablespaces estão localizados em discos diferentes
Já atualizei outro cluster que não possui tablespaces do PG 12 para o PG 15 sem erros.
Não entendo o que fazer agora :(
alguém já enfrentou esse problema antes e sabe como corrigi-lo ??
desde já, obrigado
como esperado, o fato de o namespace "pg_default" ter sido renomeado é a razão pela qual o script pg_upgradecluster falha imediatamente.
para corrigir esse problema, como fiz antes, uma simples renomeação não funciona. Tive que ser um pouco mais sorrateiro:
e pronto! :)