2013-08-20 62 views
6

Tôi đã sử dụng homebrew để cập nhật lên phiên bản mới nhất của postgis. (2,1)Bật Tiger Geocoder trong phiên bản postgis 2.1

brew unlink postgis 
brew install postgis 

Sau đó tôi đã tạo ra một sự chuyển đổi để thay đổi phần mở rộng PostGIS để 2,1

rails g migration alter_postgis_version 

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

Edit:

Ran các lệnh brew trong bình luận đầu tiên và bây giờ nhận được những điều sau đây lỗi khi tôi di chuyển:

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' 

Tôi có postgis được thiết lập theo sơ đồ postgis, vì vậy nếu tôi chạy

$: 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) | 

Tuy nhiên nếu tôi cố gắng chạy:

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

này không thực hiện bất kỳ ý nghĩa với tôi kể từ geometry_columns nằm trong danh sách các mối quan hệ.

Trả lời

1

Chạy vào đây. Đã đi sau khi tôi cài đặt lại geos, gdal, và libspatialite (relinking từng là tốt). Tôi không thể nói đây là công thức để sao chép/dán, nhưng chơi với nó và xem bạn có thể làm cho nó hoạt động được không:

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 

Bạn có thể phải làm theo thứ tự khác hoặc làm lại sau khác theo cách mà có được các thư viện theo thứ tự. Không gỡ cài đặt postgis-2.0.x, vì bạn cần thư viện (cả hai) để nâng cấp mềm.

+1

Hmm mà dường như đã thực hiện hầu hết công việc nhưng bây giờ kịch bản của tôi không thành công trong việc tạo bộ mã hóa địa lý hổ postgis. Tôi đã chỉnh sửa thông báo lỗi ở trên. – tomciopp

+0

Tôi đã giải quyết được vấn đề ban đầu của bạn, vui lòng trao các điểm thích hợp. – Ken

+0

Tôi muốn chia tiền thưởng giữa hai bạn, nhưng SO không cho phép điều đó. Tôi muốn bắt đầu một tiền thưởng khác nhưng SO chỉ cho phép bạn tăng tiền thưởng, kể từ khi tôi là 250 nó sẽ là 500. Bạn nhận được một upvote và chấp nhận. Cảm ơn đã giúp đỡ. – tomciopp

2

Đảm bảo lược đồ postgis nằm trong search_path cơ sở dữ liệu của bạn. Sau đó, kết nối lại với cơ sở dữ liệu của bạn và thử lại. Nên trông như thế này.

ALTER DATABASE mydb SET search_path = public, postgis; 

Có một lỗi nhỏ, chúng tôi giới thiệu trong postgis_tiger_geocoder như vậy có thể muốn sử dụng anh 2.1.1 một hoặc bằng tay vá các bộ nạp mô tả ở đây:

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