Problem mit srid beim Wechsel auf Postgis 2.0

Hallo,

ich möchte unsere Daten von Postgis 1.53 nach Postgis 2.0 portieren. Leider stoße ich beim Import der Daten auf einen Fehlermeldung, die ich mir nicht erklären kann.

Die Tabelle hat unter Postgis 1.5.3 einen constraint
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (-1)), und enthält 117 Datensätze. Die Abfrage
SELECT distinct st_srid(the_geom) FROM tabelle leifert nur einen Wert, nämlich -1.

Die Tabelle läßt sich nun bei Postgis 2.0 auch anlegen, beim Import der Daten erscheint aber die Fehlermeldung:
ERROR: new row for relation “tabelle” violates check constraint “enforce_srid_the_geom”
obwohl der gleiche constraint vorliegt!

Leider taucht dieses Problem bei sehr vielen Tabellen auf, andere dagegen lassen sich ohne Proble portieren. Leider haben noch alle Tabellen den SRID -1, ich weiß, dass ist unschön, aber diese baustelle wollte ich eigentlch noch etwas aufschieben.

Weiß jemand, was da schief läuft?? Und wie ich es lösen kann??

mkuis

/usr/local/src/postgresql-9.1.3/contrib/postgis-2.0.0/MIGRATION:

Unknown SRID
------------

The "unknown SRID", assigned to geometries when SRID is not specified,
is now 0, not -1.  ST_SRID will now return 0 when called on a geometry
with no known SRID.

Wie man das jetzt migriert, ausser vorher korrekte SRIDs zu verteilen, hab ich im Moment aber auch keine Idee, trotzdem danke für den Hinweis. Mir steht das auch noch ins Haus :wink:

Gruß Uwe

Ich habe jetzt etwas mehr Klarheit:

Das Problem entsteht bei allen tabellen mit einem Constraint auf ST_SRID = -1. Das Postgis 2.0 hier den SRID automatisch auf 0 wechselt, können die Daten dann nichtmehr eingespielt werden. Als Lösung sehe ich jetzt nur, den Srid-Constraint auf 0 zu ändern ( aber nur bei Postgis2.0), oder den Constraint ganz zu löschen.

Durch den Wegfall der deprecated Function ist der Umstieg eine Menge Arbeit, aber die neue Version lockt! Also ran an die Arbeit

Die Anleitung für ein Upgrade steht hier:
Chapter 2. Installation
Mit Hilfe des Perl-Scripts werden die SRIDs richtig importiert. Bei mir - Wechsel von PG9.0 in einem 32bit-System auf 9.1 in einem 64bit-System und PostGIS 1.5.3 auf 2.0 - war es allerdings zwingend notwendig, die legacy.sql und die legacy_minimal.sql auszuführen.

Viele Grüße,
Michi