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

В нашем проекте 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 StackExchange: Который в основном

  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 Ответ

0 голосов
/ 01 октября 2018

Запуск 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;
...