Причины обновления 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: который в основном
Создать 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
Сбросил локальную базу
Запустите скрипт обновления на psql
ALTER EXTENSION postgis UPDATE;
Восстановите данные из 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;