Вот моя ситуация:
ALTER EXTENSION postgis UPGRADE TO '2.2.0';
). Кажется, это сработало (select postgis_full_version()
показывает 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
на обеих базах данных, где был установлен postgis), хотя старый postgis-2.1.so
был оставлен в каталоге lib.pg_upgrade
. pg_upgrade
не работает с:Ваша установка ссылается на загружаемые библиотеки, которые отсутствуют в новой установке. Вы можете добавить эти библиотеки в новую установку или удалить функции, использующие их, из старой установки. Список проблемных библиотек находится в файле: loadable_libraries.txt.
loadable_libraries.txt содержит:
Не удалось загрузить библиотеку «$ libdir / rtpostgis-2.1» ОШИБКА: не удалось получить доступ к файлу «$ libdir / rtpostgis-2.1»: нет такого файла или каталога
Не удалось загрузить библиотеку «$ libdir / postgis-2.1» ОШИБКА: не удалось получить доступ к файлу «$ libdir / postgis-2.1»: нет такого файла или каталога
Я не уверен, зачем новой версии Postgresql старый версия Postgis ... не следовало ли ее удалить? Я переехал старый postgis-2.1.so
и rtpostgis-2.1.so
файлы из каталога lib версии 9.4, но ошибка сохраняется.
Я также пытался скомпилировать Postgis 2.1.6 против Postgresql 9.5beta2, но компиляция не удалась со следующей ошибкой:
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;
Я также попытался скопировать библиотеки 2.1 из каталога 9.4 в каталог 9.5, но это не удалось, потому что версия Postgresql не совпадала.
Сброс и перезагрузка всех баз данных возможны, но только в крайнем случае, потому что базы данных огромны. Если ответ - «потому что 9.5 все еще находится в стадии бета-тестирования», я могу согласиться с этим, хотя их бета-версии в прошлом, кажется, были довольно стабильными.
Мне удалось решить мою проблему, выполнив следующие действия:
Не думаю, что это идеальная ситуация, но, по крайней мере, сейчас она работает.