7 votes

Impossible de mettre à niveau postgresql 9.4 -> 9.5beta2 après la mise à niveau de postgis 2.1.6 -> 2.2.0

Voici ma situation :

  1. J'ai commencé avec Postgresql 9.4.5 et Postgis 2.1.6. Tout fonctionne sans problème. Les deux sont installés à partir des sources.
  2. J'ai mis à jour Postgis vers 2.2.0 (télécharger les sources, configurer, make, make install, puis ALTER EXTENSION postgis UPGRADE TO '2.2.0'; ). Cela semble avoir fonctionné ( select postgis_full_version() montre 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 sur les deux bases de données où postgis était installé), bien que l'ancienne postgis-2.1.so a été laissé dans le répertoire de la bibliothèque.
  3. Je tente de mettre à niveau Postgresql de 9.4.5 à 9.5beta2. Je télécharge les sources, configure, make, make install, installe Postgis 2.2.0, initdb, et me prépare à exécuter pg_upgrade . pg_upgrade échoue avec :

Votre installation fait référence à des bibliothèques chargeables qui sont manquantes dans le fichier nouvelle installation. Vous pouvez ajouter ces bibliothèques à la nouvelle installation, ou supprimer les fonctions qui les utilisent dans l'ancienne installation. Une liste des bibliothèques problématiques se trouve dans le fichier loadable_libraries.txt

loadable_libraries.txt contient :

Impossible de charger la bibliothèque "$libdir/rtpostgis-2.1". ERROR : Impossible d'accéder au fichier "$libdir/rtpostgis-2.1" : Aucun fichier ou répertoire de ce type

Impossible de charger la bibliothèque "$libdir/postgis-2.1". ERROR : Impossible d'accéder au fichier "$libdir/postgis-2.1" : Aucun fichier ou répertoire de ce type

Je ne sais pas pourquoi la nouvelle version de Postgresql a besoin de l'option vieux version de Postgis... n'aurait-il pas dû être supprimé ? J'ai déplacé l'ancienne postgis-2.1.so y rtpostgis-2.1.so du répertoire lib de la version 9.4 mais l'erreur persiste.

J'ai également essayé de compiler Postgis 2.1.6 avec Postgresql 9.5beta2 mais la compilation a échoué avec l'erreur suivante :

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;

J'ai également essayé de copier les bibliothèques 2.1 du répertoire 9.4 vers le répertoire 9.5, mais cela a échoué car la version de Postgresql ne correspondait pas.

Il est possible de vider et de recharger toutes les bases de données, mais seulement en dernier recours, car les bases de données sont énormes. Si la réponse est "parce que 9.5 est encore en version bêta", je pourrais l'accepter, bien que leurs versions bêta semblent avoir été assez stables dans le passé.

3voto

Arturs Vancans Points 307

J'ai réussi à résoudre mon problème en suivant les étapes suivantes :

  1. Téléchargez les sources de la version 2.1.6 et appliquez le correctif trouvé. aquí
  2. Postgis 2.1.6 se compile désormais avec Postgresql 9.5beta2. Compilez et installez.
  3. pg_upgrade fonctionne maintenant, avec l'ancienne version de Postgis installée.

Je ne pense pas que ce soit une situation idéale, mais au moins ça fonctionne maintenant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X