6

Ho usato homebrew per aggiornare alla versione più recente di postgis. (2,1)Abilitazione di Tiger Geocoder in versione postgis 2.1

brew unlink postgis 
brew install postgis 

Ho poi ho creato una migrazione di modificare l'estensione PostGIS al 2,1

rails g migration alter_postgis_version 

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

Edit:

Ran i comandi birra nel primo commento e ora sto ottenendo il seguente errore durante la migrazione:

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' 

Ho postgis impostato su uno schema di postgis, quindi se I eseguire

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

Tuttavia, se si tenta di eseguire:

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

Questo non ha alcun senso per me in quanto geometry_columns è nella lista delle relazioni.

risposta

1

Utilizzato in questo. Sono andato via dopo aver reinstallato geos, gdal e libspatialite (ricollegando anche ciascuno). Non posso dire che questa è la ricetta per copiare/incollare, ma giocare con lui e vedere se è possibile farlo funzionare:

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 

Potrebbe essere necessario farlo in un ordine diverso, o ripetere uno dopo l'altro in un modo che renda le librerie in ordine. Non disinstallare neanche postgis-2.0.x, poiché avrete bisogno delle (entrambe) librerie per l'aggiornamento software.

+1

Hmm, che sembra aver fatto la maggior parte delle il lavoro ma ora il mio script non riesce a creare il geocoder post-tigre. Ho modificato il messaggio di errore sopra. – tomciopp

+0

Ho risolto il tuo problema originale, ti preghiamo di assegnare i punti appropriati. – Ken

+0

Volevo dividere la taglia tra voi due, ma SO non lo consente. Volevo iniziare un'altra taglia ma SO consente solo di aumentare la taglia, poiché la mia era 250 sarebbe 500. Si ottiene un upvote e l'accettazione. Grazie per l'aiuto. – tomciopp

2

Assicurarsi che lo schema postgis sia nel percorso di ricerca del database. Successivamente, riconnettiti al tuo database e riprova. Dovrebbe sembrare qualcosa del genere.

ALTER DATABASE mydb SET search_path = public, postgis; 

C'è un piccolo bug introdotto nel postgis_tiger_geocoder così potrebbe desiderare di utilizzare lui 2.1.1 uno o manualmente PATCH il caricatore descritto qui:

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