Não é possível atualizar o postgresql 9.4 - 9.5beta2 após a atualização do postgis 2.1.6 - 2.2.0

7

Aqui está minha situação:

  1. Comecei com o Postgresql 9.4.5 e o Postgis 2.1.6. Tudo correndo bem. Ambos são instalados a partir da fonte.
  2. Eu atualizei o Postgis para o 2.2.0 (faça o download da origem, configure, make, make install e, em seguida, ALTER EXTENSION postgis UPGRADE TO '2.2.0'; ). Isso parece ter funcionado ( select postgis_full_version() mostra POSTGIS="2.2.0 r14208" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.9.1, 04 March 2015" GDAL="GDAL 2.0.1, released 2015/09/15" LIBXML="2.9.3" LIBJSON="0.11" RASTER em ambos os bancos de dados onde o postgis foi instalado), embora o antigo postgis-2.1.so tenha sido deixado na pasta lib.
  3. Eu tento atualizar o Postgresql de 9.4.5 para 9.5beta2. Eu faço o download da fonte, configurei, fiz, instalei, instalei o Postgis 2.2.0, initdb e prepare-me para executar pg_upgrade . pg_upgrade falha com:

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

loadable_libraries.txt contém:

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

Could not load library "$libdir/postgis-2.1" ERROR: could not access file "$libdir/postgis-2.1": No such file or directory

Não sei por que a nova versão do Postgresql precisa da versão antiga do Postgis ... não deveria ter sido removida? Mudei os antigos arquivos postgis-2.1.so e rtpostgis-2.1.so do diretório lib de 9.4, mas o erro persistiu.

Eu também tentei compilar o Postgis 2.1.6 contra o Postgresql 9.5beta2, mas a compilação falhou com o seguinte erro:

lwgeom_accum.c: In function ‘pgis_geometry_accum_transfn’: lwgeom_accum.c:109:46: error: ‘AggState {aka struct AggState}’ has no member named ‘aggcontext’ aggcontext = ((AggState *) fcinfo->context)->aggcontext;

Eu também tentei copiar as bibliotecas 2.1 do diretório 9.4 para o diretório 9.5, mas isso falhou porque a versão do Postgresql não combinava.

Despejar e recarregar todos os bancos de dados é possível, mas apenas como último recurso, porque os bancos de dados são enormes. Se a resposta for "porque o 9.5 ainda está em beta", eu poderia aceitar isso, embora seus betas pareçam bastante estáveis no passado.

    
por denaje 11.12.2015 / 21:44

1 resposta

3

Consegui resolver meu problema seguindo estas etapas:

  1. Faça o download da fonte para o 2.1.6 e aplique o patch encontrado aqui
  2. O Postgis 2.1.6 agora irá compilar com o Postgresql 9.5beta2. Compile e instale.
  3. O
  4. pg_upgrade agora funciona, com a versão antiga do Postgis instalada.

Eu não acho que essa seja uma situação ideal, mas pelo menos é executada agora.

    
por 14.12.2015 / 20:20