Mysql2postgis
From MapbenderWiki
Contents |
Datenübertragung von MySQL nach PostGIS
Mit der Mapbender-Version 2.2 kann alternativ zu MySQL auch PostgreSQL (PostGIS) zur Speicherung der Konfiguration verwendet werden. Da im GIS-Umfeld oft eine PostGIS-Datenbank zur Speicherung der Geometrie-Daten verwendet wird, braucht dann nur noch eine Datenbank gewartet werden. Die Verwendung von PostGIS ist möglich geworden, da die aktuelle PostgreSQL-Version nun auch für Windows zur Verfügung steht.
Wer bereits eine Mapbender-Version in Produktion hat, und auf PostGIS umsteigen möchte, muss die Daten übertragen.
Dabei ist Folgendes zu beachten:
Dumpen des Datenbankinhaltes
#! /bin/sh
# Datenbank von Mapbender als SQL ausgeben
# Soll zur Übertragung nach PostGIS dienen (MB 2.1 -> 2.2)
# -c = --complete-inserts = mit Feldnamen
# -n = --no-create-db Datenbank
# -t = --no-creat-info Tabellen
mysqldump -cnt mapbender_2_1 > /data/bkup/mysql2pg.sql
Wobei:
mapbender_2_1 = Name der Datenbank.
/data/bkup/mysql2pg.sql = Pfad und Name der SQL-Ausgabe.
Die aktuelle Version 5.0 von MySQL enthält zum Befehl mysqldump den Parameter "-compatible=postgresql" mit dem diese Anpassung möglicherweise überflüssig wird (konnte nicht getestet werden).
Syntax-Anpassung
Editieren der SQL-Datei: schräge Hochkomma um Feldnamen und Tabellen-Namen entfernen.
Editieren: \" nach " (Slash vor doppeltem Hochkomma entfernen)
Editieren: \' nach '' (2 mal das Zeichen Hochkomma)
Das einzelne Hochkomma ' begrenzt in der Werteliste des SQL die Inhalte der String-Felder. Das selbe Zeichen kommt auch innerhalb des Feldes vor (z.B. Tabelle "gui_element", Feld "e_attributes"). In PG-Syntax muss das Zeichen verdoppelt werden. In MySQL ist es mit / maskiert. Das doppelte Hochkomma " (Gänsefüßchen) ist ebenfalls durch einen vorangestellten Slash / gekennzeichnet. Dieser Slash kann entfernt werden.
Anlegen der Datenbank
Mit oder ohne PostGIS-Erweiterung ?
Codierung SQL-ASCII ?
Tabellen und Felder: Nicht die Definitionen aus dem MySQL-Dump verwenden! Es sind mit Mapbender 2.2 einige Felder dazu gekommen. Verwenden sie das File: /recources/db/pgsql_schema.sql
Laden des Inhaltes
Den überarbeiteten SQL-Dump mit PGadmin III o.ä. laden.
Einen User mit Schreibrecht in der Datenbank einrichten.
Den User und sein Passwort in die Datei /conf/mapbender.conf eintragen.

