Fortführung und Aktualisierung ============================== Nachdem nun alle Depot- und Ebenendefinitionen angelegt worden sind, können wir diese Definitionen für eine Fortführung der Daten nutzen. Einfache Aktualisierung ....................... Die einfache Aktualisierung besteht aus dem erneuten Import des Depots und Export der Ebene:: python manage.py loadgeometries --depot=depot datensatz.gml python manage.py tilegeometries ebene Selektive Aktualisierung ........................ Um ein vorhandenes Depot mit einer neuen Datei zu updaten, gibt es mehrere Möglichkeiten. Zum einen kann die Quelldatei ersetzt werden und das Depot wie oben beschrieben erneut importiert werden. Zum anderen kann die neue Datei selektiv importiert werden, wenn die ID des zu importierenden Gebäudes bekannt ist:: python manage.py loadgeometries --depot=depot --update --limit-id="GEBID" datensatz.gml Eine dritte Möglichkeit besteht darin, dass eine Differenzdatei erzeugt wird, die alle neuen/geänderten Datensätze enthält:: python manage.py loadgeometries --depot=depot --update update-diff-123.gml Zusammenfassung: Der Schalter ``--update`` veranlasst das System, die vorhandenen Daten nicht zu löschen, sondern alle Daten aus dem zu importierenden Datensatz entweder hinzuzufügen oder zu ändern. Ausfallsichere Aktualisierung ............................. Insbesondere bei automatischer Fortführung kann es gewünscht sein, dass die vorhandenen Daten bei einem fehlerhaften Import wiederhergestellt werden. Dies funktioniert mit dem Schalter ``--failsafe``:: python manage.py loadgeometries --depot=depot --failsafe datensatz.gml Dies funktioniert unabhängig von dem Depottypen, also sowohl für CityGML, als auch für Shapefiles, WFS, u.a. Die Erzeugung der Ebenen ist generell *failsafe*, d.h. exportierte Ebenendaten werden nur dann ersetzt, wenn der Export erfolgreich war. Integration in Shellskripte ........................... Da ``loadgeometries`` einen *exit code* zurückgibt, mit dem geprüft werden kann, ob der Befehl erfolgreich durchgelaufen ist, kann der Befehl in Shellskripten verwendet werden. Diese können wiederum als *cron jobs* ausgeführt werden. Es folgt ein Beispiel für ein einfaches, ausfallsicheres Fortführungsskript, welches eine Fehlerbenachrichtigung via e-Mail enthält:: python manage.py loadgeometries --depot=depot --failsafe datensatz.gml \ || (echo "Fehler beim Aktualisieren" | mail admin@localhost) && python manage.py tilegeometries ebene