2011-01-04 2 views
3

Ich versuche eine geographische Datenbank Vorlage für PostGIS (1.5) unter Mac OS X Snow Leopard (10.6) für meine GeoDjango Anwendung zu erstellen.Problem beim Erstellen der PostGIS Template Datenbank

Ich verfolge: http://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#creating-a-spatial-database-template-for-postgis

Ich habe es geschafft, auf den Punkt zu kommen, wo die zur Verfügung gestellt postgis.sql (dh psql -d template_postgis -f $POSTGIS_SQL_PATH/postgis.sql) ausgeführt werden soll

An dieser Stelle ich eine Störung erhalte bei die erste SQL-Anweisung, die versucht wird ausgeführt zu werden. Wenn ich versuche, dass auf der psql Prompt ist das Ergebnis wie folgt:

template_postgis=# CREATE OR REPLACE FUNCTION st_spheroid_in(cstring) RETURNS spheroid AS '/usr/local/pgsql/lib/postgis-1.5','ellipsoid_in' LANGUAGE 'C' IMMUTABLE STRICT; 
NOTICE: type "spheroid" is not yet defined 
DETAIL: Creating a shell type definition. 
ERROR: could not load library "/usr/local/pgsql/lib/postgis-1.5.so": dlopen(/usr/local/pgsql/lib/postgis-1.5.so, 10): Symbol not found: _DatumGetFloat4 
    Referenced from: /usr/local/pgsql/lib/postgis-1.5.so 
    Expected in: /opt/local/lib/postgresql83/bin/postgres 
in /usr/local/pgsql/lib/postgis1.5.so 

Irgendwelche Ideen, was messed wurde bis könnte?

+0

Seltsamer Fehler. Wie haben Sie PostGIS installiert? Ich hatte das beste Glück mit den KyngChaos-Frameworks unter OS X. – tcarobruce

+0

Zuerst versuchte ich Mac-Ports, aber es ging nicht gut, da es versucht, bereits vorhandene Abhängigkeiten usw. neu zu installieren, also ging ich den KyngChaos Weg. – omat

+0

Ich habe psql und pg_config und andere Binärdateien beide unter '/ usr/local/pgsql/bin /' und '/ opt/local/lib/postgresql83/bin /'. Gibt das einen Hinweis auf die Unordnung? – omat

Antwort

1

Hier ist, wie ich gesetzt meine Vorlagendatenbank für PostGIS bis Landsliding Into PostGIS With KML Files

+0

danke. immer noch kein Glück. an der Stelle, an der die SQL-Anweisungen ausgeführt werden sollen (unter '/ usr/local/pgsql-9.0/share/contrib/postgis-1.5' in meinem Setup), bekomme ich einen 'FEHLER: konnte nicht auf die Datei' $ libdir/postgis- 1.5 ": Keine Datei- oder Verzeichnisfehler, wie das' $ libdir' im SQL-Skript kann nicht gelöst werden. Ich ersetzte diese Variable durch den tatsächlichen Pfad in der SQL-Datei (also '/ usr/local/pgsql-9.0/lib/postgis-1.5'). dann bekomme ich den Fehler in der Frage erwähnt. Ich habe keine Ahnung warum und von wo auf diese '/ opt/local/lib/postgresql83/bin/postgres' verwiesen wird. – omat

+0

Ist es möglich, beide Versionen zu deinstallieren und neu zu starten? Ich empfehle die Verwendung von Homebrew – philwhln

+0

Ich konnte nicht deinstallieren. Wenn ich könnte, würde dies die Probleme lösen. aber obwohl ich die postgis neu installiert habe, gilt es immer noch für das postgresql83-verzeichnis, das überhaupt nicht mehr existiert. – omat

1

Dieser Fehler zeigt an, dass das Shared Object nicht gefunden wird. Der offensichtlichste Grund ist, dass PostGIS nicht ordnungsgemäß installiert wurde. Außerdem ist die Reihenfolge wichtig, in der die SQL-Skripte aus dem Ordner contrib/postgis-1.5 installiert werden.

ich verwendet habe, diese Reihenfolge und (Linux-Shell-Befehle) erfolgreich:

$ psql -U postgres -d database -f /usr/share/postgresql/9.0/contrib/_int.sql 
$ psql -U postgres -d database -f /usr/share/postgresql/9.0/contrib/pg_trgm.sql 
$ psql -U postgres -d database -f /usr/share/postgresql/9.0/contrib/postgis-1.5/postgis.sql 
$ psql -U postgres -d database -f /usr/share/postgresql/9.0/contrib/postgis-1.5/spatial_ref_sys.sql 

Danach sollte es irgendwo rund 800 Funktionen, ein paar neue Typen und einige überladenen Operator zur Verfügung.

+0

danke. Offensichtlich gibt es ein Durcheinander bei der Installation. Ich weiß nicht was und ich kann nicht alles zurückrollen und von vorne anfangen. Wenn ich all das deinstallieren könnte, würde das auch funktionieren. Ich hatte dies vorher auf meiner vorherigen Entwicklungsumgebung mac ox x 10.5 getan. – omat

+0

@omat Sie können die gis-Funktion aus der Datenbank löschen. Wenn sie verfügbar sind, sollte das Problem wo anders sein, aber da Ihre Fehlermeldung darauf hinweist, dass "Sphäroid" nicht definiert ist, fehlen einige Importe. – DrColossos

2

Überprüfen Sie, ob die richtigen Bibliotheken für die erforderliche Installation installiert sind. Ich habe den gleichen Fehler, als ich GEOS v2 installiert hatte, und ein Upgrade auf v3 behob das Problem.