Причины обновления Postgresql: "django.db.utils.OperationalError: не удалось получить доступ к файлу"$libdir/postgis-2.4": такого файла или каталога нет"

В нашем проекте Django, работающем на экземпляре OSX, возникла проблема после случайного обновления с помощью brew.

Ранее система Django работала с postgresql-9.5 с postgis-2.3 и работала без проблем.

Однако как только brew установил postgresql версии 10.5 и postgis 2.5, все начало ломаться.

После этого обновления мы получаем следующую ошибку при попытке выполнить запрос к базе данных в Django:

django.db.utils.OperationalError: could not access file "$libdir/postgis-2.4": No such file or directory

При входе в psql попытаться получить расширение до 2.4, запустив:

ALTER EXTENSION postgis UPDATE TO "2.4.0";

Мы получаем ошибку:

ERROR: extension "postgis" has no update path from version "2.5.0" to version "2.4.0"

Нам не удалось переустановить postgresql 9.5 и postgis 2.3 с brew, и мы не уверены, куда обратиться, чтобы попытаться запустить систему разработки.

Ищите предложения о том, как заставить экземпляр Django искать расширение 2.5, которое, как я предполагаю, теперь существует, или вернуть систему postgres в ее прежнее состояние на Mac через brew.

Django версия 2.0.1 и psycopg2 версия 2.7.3.2

ОБНОВИТЬ

К сожалению, единственное решение, которое до сих пор работало, было следовать ответу n1000 на gis Stack Exchange: который в основном

  1. Создать pg_dump данных

    pg_dump -h HOST_URL --user USER --password --column-inserts --data-only -T 'topology.topology' -t 'public.*' DATABASE_NAME_ON_THE_POSTGRES_SERVER -O -x > local.sql

  2. Сбросил локальную базу

  3. Запустите скрипт обновления на psql

    ALTER EXTENSION postgis UPDATE;

  4. Восстановите данные из pd_dump, который был создан ранее

    psql -U postgres DATABASE < local.sql

1 ответ

Решение

Запуск Arch Linux, Rails 5.2, PostgreSQL 10.5, Postgis 2.4.4-4. Сегодня было проведено обновление системы (1 октября 2018 года), и были обновлены соответствующие библиотеки Postgis, а именно postgis, gdal, geos и proj. Сразу же возникла та же ошибка при попытке сделать запрос к моей базе данных с поддержкой postgis: could not access file "$libdir/postgis-2.4"

Решение было просто открыть psql консоль и обновить postgis расширение.

psql -d <name_of_database>
ALTER EXTENSION postgis UPDATE;
Другие вопросы по тегам