Mysql2postgis

From MapbenderWiki

Jump to: navigation, search

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.

Personal tools