Atualize o PostgreSQL 9.5 para 9.6 com PostGIS - pg_upgrade

3

Estou tentando atualizar um servidor 9.5 para 9,6 e o pg_upgrade me apresenta o seguinte erro:

Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is the install user                  ok
Checking database connection settings                       ok
Checking for prepared transactions                          ok
Checking for reg* system OID user data types                ok
Checking for contrib/isn with bigint-passing mismatch       ok
Checking for roles starting with 'pg_'                      ok
Creating dump of global objects                             ok
Creating dump of database schemas
                                                        ok
Checking for presence of required libraries                 fatal

Your installation references loadable libraries that are missing from the
new installation.  You can add these libraries to the new installation,
or remove the functions using them from the old installation.  A list of
problem libraries is in the file:
    loadable_libraries.txt

Que contém:

could not load library "$libdir/rtpostgis-2.2":
ERROR:  could not access file "$libdir/rtpostgis-2.2": No such file or directory

Quando eu inicio o servidor e executo "CREATE EXTENSION postgis" e depois paro o servidor, pg_upgrade, em seguida, me dá um erro sobre um DB não vazio:

New cluster database "postgres" is not empty

Então, eu sou pego em um catch-22 - Eu não posso atualizar sem instalar a extensão, mas uma vez que eu faço isso, o banco de dados não está vazio.

Alguma dica de como corrigir isso?

    
por Jeremy Wilson 09.05.2017 / 19:33

2 respostas

1

O problema é que a versão do postgis extensão no cluster antigo não é a mesma que a versão da biblioteca no novo. Então, quando ele tenta migrar o banco de dados, não consegue encontrar a versão mais antiga da extensão.

Para corrigir isso, para cada my_database que tem a extensão postgis instalada, execute:

psql my_database postgres -c 'ALTER EXTENSION postgis UPDATE TO "2.3.2";'

no cluster antigo . Em seguida, execute o pg_update.

    
por 22.06.2017 / 11:45
0

Sua instalação 9.6 provavelmente tem o postgis 2.3 e a biblioteca rtpostgis-2.3 correspondente. Se você tivesse as bibliotecas para o postgis 2.2 em sua instalação 9.6, o pg_upgrade deveria funcionar bem.

Se você precisar de postgis 2.3 provavelmente terá que pg_dumpall e pg_restore.

    
por 09.05.2017 / 20:10