Umstellung auf GeoInfoDok 7.1

Aus kvwmap
Wechseln zu: Navigation, Suche

Das AFIS-ALKIS-ATKIS-Anwendungsschema wird vom bisherigen Datenmodell GeoInfoDok 6.0.1 auf die GeoInfoDok NEU (Referenzversion 7.1) umgestellt.

Die Version 7.1 wird zum 31.12.2023 zur neuen Referenzversion der AdV (Arbeitsgemeinschaft der Vermessungsverwaltungen der Länder der Bundesrepublik Deutschland).

Mecklenburg-Vorpommern beabsichtigt die Umstellung bereits zu Beginn des 4. Quartals 2023 durchzuführen.

Das bedeutet, dass die NAS-Daten ab einem bestimmten Zeitpunkt über ein neues NBA-Verfahren, als neue Grundausstattung in der Version GeoInfoDok 7.1 geliefert werden.


Was ist dafür zu tun?

Zum einen wird neues DB-Schema benötigt, um die NAS-Daten nach dem neuen Datenmodell einlesen zu können. Dieses neue Schema "alkis" wurde mit Hilfe des Tools xmi2db auf Basis des neuen UML-Modells erzeugt. Es wird zunächst hier an dieser Stelle veröffentlicht und kann von jedem "von Hand" angelegt und getestet werden. Es ist davon auszugehen, dass es im Laufe der Testphase noch Änderungen am Schema geben wird. Sobald wir dann eine finale Version des Schemas haben, wird es in die Migrationsdateien von kvwmap aufgenommen.

  • alkis_schema_2024-04-22.sql - letzte Änderung 22.04.2024 (allerdings nur die View-Definitionen und PP-Tabellen aus der Datei entfernt, Schema muss nicht neu angelegt werden)



Außerdem muss natürlich kvwmap auch korrekt auf dieses neue Schema "alkis" zugreifen können. Dafür wurde im git-Repository ein neuer Branch "gid71" angelegt. In diesem Branch wurden zum einen die notwendigen Änderungen am Quellcode vorgenommen und außerdem befindet sich hier auch die neue GFS-Datei, um die NAS-Daten mit OGR einlesen zu können.

Damit OGR alle Daten korrekt einlesen kann, wird mindestens die GDAL-Version 3.8 benötigt. Wir haben deshalb eine neue Version des gdal-Docker-Images erstellt (0.5.0).

Alle Layer, Mapdateien, DB-Sichten, Skripte, Dienste usw., die auf das Schema "alkis" zugreifen, müssen auf das neue Datenmodell angepasst werden.


Vorgehensweise der Umstellung

Da natürlich nicht alle Layer, Mapdateien, DB-Sichten, Skripte, Dienste usw. von einem Tag auf den anderen umgestellt werden können, muss es eine Testphase geben um alle diese Sachen auf das neue Modell anpassen zu können. Alle Änderungen, die dafür notwendig sind, müssen so aufgeschrieben bzw. vorbereitet werden, dass sie beim Tag der Umstellung automatisch ablaufen können.

Testphase mit separater kvwmap-Instanz

Unsere Empfehlung ist, dass man sich für die Testphase eine zweite kvwmap-Instanz (mit eigenen Datenbank-Kopien) anlegt und dort in den Branch "gid71" wechselt.

Dann geht es darum das alte Schema "alkis" zu löschen. Alle Sichten, die auf dieses Schema zugreifen, müssen vorher als Dump gesichert werden, um sie später wieder anzulegen.

Wenn man das alte Schema gelöscht hat, kann man das neue Schema anlegen. Danach kann man die gesicherten Sichten anlegen und muss dabei notwendige Änderungen auf Grund des neuen Datenmodells im Sichten-Dump speichern.

Dann kann man die NAS-Daten mit dem Import-Skript "import_nas.sh" einlesen.

Wurden die Daten erfolgreich eingelesen, kann man mit dem Testen beginnen. Neben den kvwmap-Funktionalitäten geht es, wie schon erwähnt, auch um die Layerdefinitionen sowie alle Zugriffe außerhalb von kvwmap wie Mapdateien, Skripte, Conjobs, Dienste usw. Alle Anpassungen werden dabei dokumentiert.

Im FAQ-Bereich des LAiV M-V stehen ALKIS-Testdaten für die GID7 (Bestandsdatenauszug und NBA-Daten) zum Download für Testzwecke bereit.

Umstellung des Produktivsystems

Wenn die Testphase abgeschlossen ist und man die neue Grundausstattung bekommen hat, kann man die Produktivinstanz auf das neue Datenmodell umstellen.

Im Prinzip muss man hierfür "nur" 4 Sachen machen:

  1. kvwmap auf den Branch "gid71" umstellen, bzw. auf die neueste Version updaten, die dann schon die Änderungen von "gid71" enthält
  2. das alte Schema "alkis" löschen und das neue über die dann vorhandene Migrationsdatei anlegen.
  3. die neue Grundausstattung einlesen
  4. Alle vorher abgespeicherten Anpassungen vornehmen (Layer, Mapdateien, DB-Sichten, Skripte, Dienste usw.)