2013-08-20 61 views
6

我已經使用自制軟件更新到最新版本的postgis。 在postgis版本2.1中啓用Tiger Geocoder

然在第一評論沖泡命令,現在我得到如下:

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 

編輯(2.1)我遷移時發生錯誤:

PG::UndefinedObject: ERROR: type "geometry" does not exist: 
CREATE EXTENSION postgis_tiger_geocoder;/me/.rvm/gems/ruby-2.0.0- 
[email protected]_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是兩國關係的列表。

回答

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,因爲你需要(兩個)庫軟升級。

+1

嗯似乎已經完成了大部分的這項工作,但現在我的腳本沒有創建postgis老虎geocoder。我編輯了上面的錯誤消息。 – tomciopp

+0

我解決了你原來的問題,請給予適當的分數。 – Ken

+0

我想分享你們之間的賞金,但是SO不允許。我想開始另一個賞金,但是它只允許你增加賞金,因爲我的250是500,你會得到讚揚和接受。謝謝您的幫助。 – tomciopp

相關問題