6

Ich habe Homebrew verwendet, um auf die neueste Version von Postgis zu aktualisieren. (2,1)Aktivieren von Tiger Geocoder in Postgis Version 2.1

brew unlink postgis 
brew install postgis 

ich dann eine Migration geschaffen habe, um 2,1

rails g migration alter_postgis_version 

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

bearbeiten die postgis Erweiterung zu ändern:

Ran das Gebräu Befehle im ersten Kommentar und nun folgenden sind immer Fehler, wenn ich zu migrieren:

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' 

ich habe postgis unter einem Schema von postgis einrichten, also wenn ich laufen

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

Allerdings, wenn ich zu laufen versuchen:

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

Das macht keinen Sinn für mich da geometry_columns in der Liste der Beziehungen ist.

Antwort

1

Eingeschlossen in diese. Ging weg, nachdem ich Geos, Gdal und Libspatialite neu installiert habe Ich kann nicht sagen, dass dies das Rezept zum Kopieren/Einfügen, aber mit ihm spielen und sehen, ob Sie es bekommen können arbeiten:

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 

Man könnte es in einer anderen Reihenfolge zu tun hat, oder wiederholt eine nach der andere in einer Weise, die die Bibliotheken in Ordnung bringt. Deinstallieren Sie auch nicht postgis-2.0.x, da Sie die (beide) Bibliotheken für ein Soft-Upgrade benötigen.

+1

Hmm, dass die meisten getan zu haben scheint die Arbeit, aber jetzt scheitert mein Skript bei der Erstellung der Postgis Tiger Geocoder. Ich habe die obige Fehlermeldung bearbeitet. – tomciopp

+0

Ich löste Ihr ursprüngliches Problem, bitte vergeben Sie entsprechende Punkte. – Ken

+0

Ich wollte das Kopfgeld zwischen euch zwei teilen, aber SO erlaubt das nicht. Ich wollte ein anderes Bounty starten, aber SO erlaubt Ihnen nur, Bounty zu erhöhen, da meine 250 war, wäre es 500. Sie erhalten eine Aufwertung und Akzeptanz. Danke für die Hilfe. – tomciopp

2

Vergewissern Sie sich, dass sich das postgis-Schema in Ihrer Datenbank search_path befindet. Stellen Sie danach die Verbindung zu Ihrer Datenbank wieder her und versuchen Sie es erneut. Sollte in etwa so aussehen.

ALTER DATABASE mydb SET search_path = public, postgis; 

Es gibt einen kleinen Fehler wir in postgis_tiger_geocoder eingeführt, so könnte er 2.1.1 ein verwenden oder manuell der Lader hier beschriebenen Patch:

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