Не удается обновить postgresql 9.4 -> 9.5beta2 после обновления postgis 2.1.6 -> 2.2.0

Вот моя ситуация:

  1. Я начал с Postgresql 9.4.5 и Postgis 2.1.6. Все идет гладко. Оба установлены из источника.
  2. Я обновил Postgis до 2.2.0 (загрузите исходный код, настройте, сделайте, сделайте установку, затем 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.
  3. Я пытаюсь обновить Postgresql с 9.4.5 до 9.5beta2. Я загружаю исходники, настраиваю, делаю, делаю установку, устанавливаю Postgis 2.2.0, initdb и готовлюсь к запуску 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 все еще находится в бета-версии", я мог бы принять это, хотя их бета-версии в прошлом были довольно стабильными.

1 ответ

Решение

Мне удалось решить мою проблему, выполнив следующие действия:

  1. Скачайте исходный код для 2.1.6 и примените патч, найденный здесь
  2. Postgis 2.1.6 теперь будет компилироваться с Postgresql 9.5beta2. Скомпилируйте и установите.
  3. Теперь pg_upgrade работает, если установлена ​​старая версия Postgis.

Я не думаю, что это идеальная ситуация, но, по крайней мере, сейчас.

Другие вопросы по тегам