PostgreSQL更新原因:“ django.db.utils.OperationalError:无法访问文件“ $ libdir / postgis-2.4”:没有此类文件或目录”

时间:2018-09-25 02:18:07

标签: python django postgresql homebrew postgis

我们的OSX实例上运行的Django项目在意外升级brew后出现问题。

以前,Django系统运行的是postgisql-2.3和postgresql-9.5,并且没有任何问题。

但是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"

我们未成功通过brew重新安装postgresql 9.5和postgis 2.3,并且不确定下一步该去哪里尝试使开发系统运行。

正在寻找有关如何获取Django实例以查找我猜测现在已经存在的扩展2.5或如何通过brew将postgres系统恢复为Mac上以前状态的建议。

Django 2.0.1版和psycopg2 2.7.3.2版

更新

不幸的是,到目前为止唯一有效的解决方案是在gis Stack Exchange:上遵循n1000的答案,基本上

  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上运行更新脚本<​​/ p>

    ALTER EXTENSION postgis UPDATE;

  4. 从先前创建的pd_dump中恢复数据

    psql -U postgres DATABASE < local.sql

1 个答案:

答案 0 :(得分:8)

运行Arch Linux,Rails 5.2,PostgreSQL 10.5,Postgis 2.4.4-4。今天(2018年10月1日)进行了系统更新,并更新了相关的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;