Postgis 2.2.0 和 Postgres 9.4.5 的问题:PG::未定义文件 - 错误:无法访问文件"$libdir/postgis-2.1"



不幸的是,我通过自制软件升级到了postgis的2.2.0版本,现在出现了以下错误。我会回到2.1.0,但这个公式似乎已经不可用了。走向2.0试图将Postgres降级到9.2。

如果我想知道我还能尝试什么,我将不胜感激?

版本:

  • PostGres:9.4.5_2
  • Postgis:2.2.0
  • activerecord_postgis_adapter:3.1.0
  • pg宝石:0.18

以下错误:

PG::UndefinedFile - ERROR:  could not access file "$libdir/postgis-2.1": No such file or directory
:
  activerecord (4.2.4) lib/active_record/connection_adapters/postgresql_adapter.rb:596:in `block in exec_no_cache'
  activerecord (4.2.4) lib/active_record/connection_adapters/abstract_adapter.rb:473:in `block in log'
  activesupport (4.2.4) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
  activerecord (4.2.4) lib/active_record/connection_adapters/abstract_adapter.rb:467:in `log'
  activerecord (4.2.4) lib/active_record/connection_adapters/postgresql_adapter.rb:596:in `exec_no_cache'
  activerecord (4.2.4) lib/active_record/connection_adapters/postgresql_adapter.rb:588:in `execute_and_clear'
  activerecord (4.2.4) lib/active_record/connection_adapters/postgresql/database_statements.rb:160:in `exec_query'
  activerecord (4.2.4) lib/active_record/connection_adapters/postgresql_adapter.rb:737:in `column_definitions'
  activerecord-postgis-adapter (3.1.0) lib/active_record/connection_adapters/postgis/schema_statements.rb:9:in `columns'

基本调试:

$ pg_config --pkglibdir                                        
/usr/local/Cellar/postgresql/9.4.5/lib
$ ls -lrt /usr/local/Cellar/postgresql/9.4.5/lib/postgis
postgis-2.1.so*

/usr/local/Cellar/postgresql/仍然显示9.4.5_1和9.4.5_2的文件夹。我还尝试过在Postgres上删除、创建和更改postgis扩展,它运行起来没有问题。当我查找已安装的扩展时:

-[ RECORD 36 ]----+---------------------------------------------------------------------
name              | postgis
default_version   | 2.1.7
installed_version | 2.2.0
comment           | PostGIS geometry, geography, and raster spatial types and functions

在带有自制程序的OSX上,我通常会同时更新postgresqlpostgis,如下所示:

brew update
brew uninstall postgis
brew upgrade postgresql
brew install postgis
# update the postgis extension 
psql -d your_database -c "alter extension postgis update"
# recompile the native extensions in the pg gem
gem pristine pg

如果您正在进行PostgreSQL的主要更新(例如,从9.4到9.5),并且希望保留您的数据,请首先查看pg_upgrade

我也遇到了同样的问题,从postgres shell运行ALTER EXTENSION postgis UPDATE;似乎起到了作用:

$ dx  postgis                
| 2.1.7   | public     | PostGIS geometry, geography, and raster spatial types and functions
$ ALTER EXTENSION postgis UPDATE; 
ALTER EXTENSION
$ dx postgis                
| 2.2.0   | public     | PostGIS geometry, geography, and raster spatial types and functions

在那之后,错误消失了

最新更新