2013-08-20 17 views
6

Postgis'in en son sürümüne güncelleştirmek için homebrew kullanıyorum. Postgis sürüm 2.1'de Tiger Geocoder'ı etkinleştirme

şimdi ilk yorumunda demlemek komutları Ran ve alıyorum şu: O zaman 2.1 Düzenleme

rails g migration alter_postgis_version 

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

için PostGIS uzantısını değiştirmek için bir göç oluşturduk

brew unlink postgis 
brew install postgis 

(2,1) hata ı geçirirken:

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' 

Ben PostGIS PostGIS bir şema altında kurmak var, bu yüzden eğer Ben çalıştırmayı denediğinizde Ancak

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

çalıştırın: geometry_columns ilişkilerin listesinde olduğundan

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

Bu benim için hiçbir şey ifade etmiyor.

cevap

1

Buna bir cevap verin. Geos, gdal ve libspatialite (her birini de yeniden bağlayarak) yeniden yükledikten sonra gitti. Devam etsin diye bu kopyalamak için tarifi/yapıştır olduğunu söylemek, ancak onunla oynamak ve elde edip edemeyeceğini göremiyorum:

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 

Sen farklı bir sırada bunu yapmak zorunda, ya ardına yinelemek olabilir diğeri ise kütüphaneleri sırayla alır. Postgis-2.0.x yazılımını kaldırmayın, çünkü yazılım yükseltmek için (her ikisi de) kütüphaneye ihtiyacınız olacaktır.

+1

Hmm iş ama şimdi benim betik postgis kaplan geocoder yaratmada başarısız oluyor. Yukarıdaki hata iletisini düzenledim. – tomciopp

+0

Orijinal sorununuzu çözdüm, lütfen uygun puanları ödeyin. – Ken

+0

İkiniz arasındaki kelleği bölmek istedim, ama SO buna izin vermiyor. Ben başka bir ödül başlatmak istedim ama sadece sen, ben sadece 250 dolar olacak 500 lira, sadece bir ödül ve kabul sağlar. Yardım için teşekkürler. – tomciopp

2

Postgis şemasının veritabanı arama anahtarınızda bulunduğundan emin olun. Daha sonra, veritabanınıza tekrar bağlanın ve tekrar deneyin. Böyle bir şeye benzemeli.

ALTER DATABASE mydb SET search_path = public, postgis; 

biz postgis_tiger_geocoder tanıtılan bir küçük hata o birini 2.1.1 veya el yükleyici Burada anlatılan yama kullanmak isteyebilirsiniz vardır: çoğu yapmış gibi görünüyor

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