[QGIS-DE] Antwort: PostgreSQL: Fehler beim Restore
Marcus Abram
marcus.abram at krzn.de
Mi Mai 7 07:00:44 PDT 2025
Hallo zusammen,
vielen Dank für die Rückmeldungen.
In der Tat ist es so, dass in der Ausgangs-DB die Erweiterung ArcSDE
installiert ist, während in der Ziel-DB die Erweiterung PostGIS
installiert ist.
Die Fehler beim Import sind dadurch entstanden, dass im Schema public die
Tabelle sde_spatial_references erwartet wird. Wird diese vor Einspielung
der Datensicherung importiert, treten die Fehler nicht auf, die Tabellen
werden vollständig gefüllt.
Nun stoße ich jedoch auf das nächste Problem: Die Geometriespalten sind
anders definiert, als PostGIS es erwartet. Die Daten aus der ArcSDE sind
vom Datentyp st_geometry, während PostGIS-Layer den Datentyp geometry
sowie jeweils den richtigen Geometrietype z.B. LineString erwartet. Es ist
nun nicht möglich hier einfach den Typ zu ändern.
Offenbar verfügt GDAL aber über einen ArcSDE-Treiber. Ich versuche nun auf
diesem Weg weiterzukommen. Es sollte damit ja möglich sein mit QGIS auf
die ArcSDE zuzugreifen und dann in PostGIS zu exportieren, hoffentlich mit
dann richtiger SRID.
Viele Grüße
Marcus
Von: "Karsten Vennemann" <karsten at terragis.net>
An: "Marcus Abram" <marcus.abram at krzn.de>
Kopie: qgis-de at lists.osgeo.org, BenjaminGabriel.Klusz at krzn.de,
Julia.Meyering at krzn.de
Datum: 06.05.2025 16:13
Betreff: [EXTERN] Re: [QGIS-DE] PostgreSQL: Fehler beim Restore
Hallo Markus,
ich habe zwar nichts ganz Ähnliches gemacht, aber beim kurzen Ansehen der
Fehlermeldungen scheint es mir, als ob beim Datenbank-Dump etwas mit der
Kartenprojektion (also in PostGIS: dem SRID) zwischen der Definition in
der Tabelle und den einzuspielenden Daten nicht übereinstimmt oder nicht
konsistent ist.
PostGIS prüfen
Als Erstes würde ich allerdings prüfen, ob PostGIS installiert und in der
Datenbank verfügbar ist:
Im pgAdmin-Query-Fenster:
SELECT postgis_version();
Wenn dabei nichts gefunden wird, müsst ihr PostGIS als Erweiterung
hinzufügen:
CREATE EXTENSION IF NOT EXISTS postgis;
Wenn das einen Fehler auslöst, ist PostGIS vermutlich nicht auf der
Maschine / Server installiert. Wenn danach die abfrage SELECT
postgis_version();
geht würde ich den import nochmals (in eine frische DB) starten uns sehen
ob das allein schon das problem war...
SRID-Probleme analysieren
Wenn das nichts hilft, wäre es hilfreich, in der leeren Tabelle
nachzusehen, wie die Geometriespalte definiert ist (laut Fehlermeldung ist
das die Spalte shape). In der Fehlermeldung sieht man, dass dort SRIDs wie
4 oder 2 auftauchen – die nicht gültig sind – sowie SRID 25832, was eine
gültige Projektion ist:
ETRS89 / UTM Zone 32N (EPSG:25832) – das ist eine Standardprojektion der
deutschen Vermessungsämter.
Ohne weitere Details kann ich nicht genau sagen, woher das kommt, aber
offenbar ist die SRID-Angabe inkonsistent:
fl_pet → SRID 4 (ungültig)
archiv_strflaechen → SRID 25832 (scheint korrekt, aber ihr bekommt dennoch
Fehler)
pt_baum → SRID 2 (ebenfalls ungültig)
Auffällig ist, dass selbst bei einer scheinbar korrekten SRID (25832) ein
Fehler auftritt.
Deshalb würde ich eine einfache SQL-Abfrage ausführen, um zu testen, ob
SRID 25832 in eurer PostGIS-Installation grundsätzlich funktioniert.
SELECT ST_AsText(
ST_SetSRID(
ST_GeomFromWKB(
decode('0106000020E86400000100000001030000000100000006000000703D0AD7543E2141EC51B8FECC6F544100000080583E2141E27A142ECD6F5441F8285C0F5D3E214114AE47F1CC6F544150B81E855E3E2141285C8F82CC6F544148E17A94573E21417A14AE27CC6F5441703D0AD7543E2141EC51B8FECC6F5441',
'hex')
), 25832
)
);
Diese Abfrage prüft, ob PostGIS Geometrien mit SRID 25832 korrekt
verarbeiten kann.
Wenn das funktioniert, ist PostGIS korrekt installiert und die SRID 25832
verfügbar. Falls nicht, liegt evtl. ein Problem mit der Installation, der
spatial_ref_sys-Tabelle oder inkompatiblen PROJ-Versionen vor.SRID-Eintrag
prüfen
Du kannst auch gezielt prüfen, ob SRID 25832 in der Tabelle
spatial_ref_sys eingetragen ist:
SELECT srid, auth_name, auth_srid, srtext, proj4text
FROM public.spatial_ref_sys
WHERE srid = 25832;
Wenn dieser Eintrag fehlt, ist die Tabelle nicht korrekt befüllt. Dann
würde ich empfehlen, PostGIS nochmals zu deinstallieren und neu zu
installieren.
Wenn ihr nicht an den kompletten alphanumerischen WKB-String aus dem Dump
herankommt, könnt ihr vorübergehend das Datenbank-Logging aktivieren, um
bei einem erneuten Importversuch in den PostgreSQL-Logs umfangreiche
Fehlermeldungen zu sehene und die kompletet SQL befehle aka copy befehle
zu sehen ...
Oder einfach den oben genannten Test-Query laufen lassen – das zeigt
zumindest, ob eure SRIDs grundsätzlich funktionieren.
Viel Erfolg bei der Fehlersuche!
Viele Grüße Karsten
On 5/6/2025 15:01, Marcus Abram via QGIS-DE wrote:
Hallo zusammen,
wir haben eine PostgreSQL-DB, in der sich Daten befinden, die mit ArcMap
erstellt worden sind. Diese sind gesichert und per Restore in eine weitere
PostgreSQL eingespielt worden, auf die dann mit QGIS zugegriffen werden
soll.
Leider werden zahlreiche Tabellen bzw. Layer nicht gefüllt. Es werden zwar
die Schemen, Tabellendefinitionen und Berechtigungen übernommen, aber die
Datensätze der meisten Tabellen sind leer. Es handelt sich jetzt also
nicht direkt um ein QGIS-Problem, sondern um ein DB-Problem, erzeugt durch
wahrscheinlich einige fehlerhafte Datensätze aus ArcMap, vielleicht hat
dennoch jemand bereits ein ähnliches Problem gehabt und weiß Rat.
Hier noch ein Auszug der Fehlermeldungen, die beim Restore ausgeworfen
werden:
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_pet«: ERROR:
ESRI: error getting spatial references for srid = 4:
KONTEXT: COPY fl_pet, line 1, column shape:
"CB000000110000000800100004000000AF02000001100004AEADE5AACEC0DE08B4C9D5E0FEE69119CFAC9BD401B0D2F5D602..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »archiv_strflaechen«:
ERROR: ESRI: error getting spatial references for srid = 25832:
KONTEXT: COPY archiv_strflaechen, line 1, column shape:
"DA0000002A00000008001000E8640000BE020000011000049096CC8E9503B6F2D49C9009B865F64A889401E28601948201F8..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR:
ESRI: error getting spatial references for srid = 4:
KONTEXT: COPY strflaechen, line 1, column shape:
"54000000050000000800100004000000380000000110000490C8D2C4B5C1D7088AAD82E6F5C08D19F0D1A1D807A8B4F89206..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR:
ESRI: error getting spatial references for srid = 25832:
KONTEXT: COPY strflaechen, line 1, column shape:
"760000001100000008001000E86400009A01000001100004A4FF8CAF9503969EEF8290098480038A4BD09304969712FCD70B..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_po«: ERROR: ESRI:
error getting spatial references for srid = 25832:
KONTEXT: COPY fl_po, line 1, column shape:
"590000000700000008001000E86400003D00000001110004AEB8BAC19603B691A6FB9009DEC48901D0A229A9A929F8855DEB..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR:
ESRI: error getting spatial references for srid = 25832:
KONTEXT: COPY strflaechen, line 1, column geom:
"B20000001C00000008001000E86400009602000001100004B5DDE2889603A1E0E8919209E420A23EC311AF20DE1DCB108F1C..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »pt_baum«: ERROR:
ESRI: error getting spatial references for srid = 2:
KONTEXT: COPY pt_baum, line 1, column geometry2:
"2D000000010000000100040002000000110000000101000098F6B497960395FBD8E1900980A8D6B90756000000"
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR:
ESRI: error getting spatial references for srid = 25832:
KONTEXT: COPY strflaechen, line 1, column shape:
"900100003E00000008001000E8640000B40500000110000487B2B7EC9503B6D8F5809209D0FB0382E602D0FB0383E602D0FB..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_pet«: ERROR:
ESRI: error getting spatial references for srid = 25832:
KONTEXT: COPY fl_pet, line 1, column shape:
"3E0000000500000008001000E8640000220000000110000491BFFAF495039E8A878D9009B5E408CEC8028B30B8A401F4E408..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR:
ESRI: error getting spatial references for srid = 4:
KONTEXT: COPY strflaechen, line 1, column shape:
"96020000420000000800100004000000BA090000011000049BDCBE89E1DDDC08B290ABE0F5FD9319C6C791E20392DADEF103..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_po«: ERROR: ESRI:
error getting spatial references for srid = 4:
KONTEXT: COPY fl_po, line 1, column shape:
"B40000000F000000080010000400000098020000011000049BADCFEF85EAD70886E5A3BFA5D88D19CEFEB0EC03C8B1F78D01..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_pet«: ERROR:
ESRI: error getting spatial references for srid = 25832:
KONTEXT: COPY fl_pet, line 1, column shape:
"5F0000000E00000008001000E86400008301000001100004A5DAE3ED960394A3E6A49309A86FAD1280658048AF16A255F220..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strabschnitte«:
ERROR: ESRI: error getting spatial references for srid = 4:
KONTEXT: COPY strabschnitte, line 1, column shape:
"860000000A00000004000C0004000000AA010000010000009AA8E1C1E1DFD7089AFFD68C8CE98C1991C4B4F13C8A84C48C4A..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_pet«: ERROR:
ESRI: error getting spatial references for srid = 4:
usw.
Viele Grüße
Marcus
_______________________________________________
QGIS-DE mailing list
QGIS-DE at lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-de
--
Karsten Vennemann
Terra GIS LTD
2119 Boyer Ave E
Seattle, WA 98112
Tel ++1 206 905 1711
www.terragis.net
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.osgeo.org/pipermail/qgis-de/attachments/20250507/99f8c367/attachment-0001.htm>
Mehr Informationen über die Mailingliste QGIS-DE