Postgresql更新原因:'django.db.utils.OperationalError:无法访问文件"$ libdir/postgis-2.4":没有这样的文件或目录'

Dfr*_*373 2 python django postgresql homebrew postgis

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

以前,Django系统使用postgis-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
Run Code Online (Sandbox Code Playgroud)

当进入psql尝试通过运行获得扩展到2.4:

ALTER EXTENSION postgis UPDATE TO "2.4.0";
Run Code Online (Sandbox Code Playgroud)

我们得到错误:

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

UPDATE

不幸的是,到目前为止唯一的解决方案是在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上运行更新脚本

    ALTER EXTENSION postgis UPDATE;

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

    psql -U postgres DATABASE < local.sql

小智 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;
Run Code Online (Sandbox Code Playgroud)