6

我已经使用自制软件更新到最新版本的 postgis。(2.1)

brew unlink postgis
brew install postgis

然后我创建了一个迁移以将 postgis 扩展更改为 2.1

rails g migration alter_postgis_version

def change
  execute %q{ALTER EXTENSION postgis UPDATE TO "2.1.0";}
end

编辑:

在第一条评论中运行 brew 命令,现在我在迁移时收到以下错误:

PG::UndefinedObject: ERROR:  type "geometry" does not exist:
CREATE EXTENSION postgis_tiger_geocoder;/me/.rvm/gems/ruby-2.0.0- 
p247@freight_alert/gems/activerecord4.0.0/
lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `exec'

我在 postgis 模式下设置了 postgis,所以如果我运行

$: set search_path = "$user", postgis,public;
$: \d
                             List of relations
 Schema  |           Name           |   Type   |       Owner       
---------+--------------------------+----------+-------------------
 postgis | geography_columns        | view     | me
 postgis | geometry_columns         | view     | me
 etc..

$: \d geometry_columns

                View "postgis.geometry_columns"
      Column       |          Type          | Modifiers 
-------------------+------------------------+-----------
 f_table_catalog   | character varying(256) | 
 f_table_schema    | character varying(256) | 
 f_table_name      | character varying(256) | 
 f_geometry_column | character varying(256) | 
 coord_dimension   | integer                | 
 srid              | integer                | 
 type              | character varying(30)  | 

但是,如果我尝试运行:

$: CREATE EXTENSION postgis_tiger_geocoder;
ERROR:  type "geometry" does not exist

这对我来说没有任何意义,因为 geometry_columns 在关系列表中。

4

2 回答 2

2

确保 postgis 架构在您的数据库 search_path 中。之后,重新连接到您的数据库并重试。应该看起来像这样。

ALTER DATABASE mydb SET search_path = public, postgis;

我们在 postgis_tiger_geocoder 中引入了一个小错误,因此可能希望使用他 2.1.1 或手动修补此处描述的加载程序:

http://www.postgresonline.com/journal/archives/317-CREATE-SCHEMA-IF-NOT-EXISTS-in-9.3-and-tiger-geocoder.html

于 2013-08-23T06:23:08.393 回答
1

碰到这个。在我重新安装 geos、gdal 和 libspatialite(也重新链接每个)后离开了。我不能说这是复制/粘贴的方法,但可以尝试一下,看看你是否可以让它工作:

brew reinstall gdal
brew unlink gdal && brew link gdal
brew reinstall geos
brew unlink geos && brew link geos
brew reinstall libspatialite
brew unlink libspatialite && brew link libspatialite

您可能必须以不同的顺序执行此操作,或者以一种使库按顺序排列的方式一个接一个地重做。也不要卸载 postgis-2.0.x,因为您需要(两个)库来软升级。

于 2013-08-22T21:14:14.853 回答