Datenbanken migrieren

English Translation

Datenbank-Server

Track of the day verwendet den Microsoft SQL-Server 2019 in der kostenlosen LocalDB Edition für die dauerhafte Ablage von Tracks, Routen und POIs. Die LocalDB Edition des SQL-Servers ist für die Nutzung auf einem Computer vorgesehen. Es können aber mehrere Datenbanken parallel verwaltet werden. Eine Größenbegrenzung der Datenbank gibt es nicht. Einzig der verfügbare Festplattenplatz begrenzen wie viele Elemente in der Datenbank gespeichert werden können.

Allerdings werden Funktionen wie der Import von POIs mit zunehmender Datenmenge etwas langsamer, wenn beispielsweise die Prüfung auf doppelte Datensätze aktiviert ist. Dies liegt aber in der Natur der Sache. Enthält eine Datenbank beispielsweise 10.000 POIs und es werden 1.000 neue POIs mit aktivierter Dubletten-Prüfung importiert, so müssen 10.000 x 1.000 = 10 Millionen Prüfungen auf doppelte POIs ausgeführt werden.

Das dies etwas Zeit in Anspruch nimmt, ist mehr als verständlich.

Datenbankschema

Der SQL-Server ist eine Datenbanksystem für die Verwaltung von relationalen Datenbanken. Beim ersten Start von Track of the day wird eine Verbindung zum SQL-Server aufgebaut und eine initiale Datenbank für Track of the day angelegt und im SQL-Server registriert. Alle Daten werden in Tabellen gespeichert, die miteinander verknüpft sein können. Diese Tabellen werden als Relationen bezeichnet. Jede dieser Tabellen hat Spalten in denen Informationen mit unterschiedlichen Datentypen gespeichert werden können. All das zusammen wird als Datenbankschema oder auch Datenbankmodell bezeichnet.

Schema-Änderungen

Ändert sich mit einer neueren Version von Track of the day die Reihenfolge oder der Datentyp auch nur einer Tabellenspalte, so muss die betroffene Datenbankschema migriert werden. Diese Migrationen sind technisch gesehen ein komplexer Prozess, bei dem vieles fehlschlagen kann. Daher ist es immer ratsam, zuvor ein Backup der Datenbank zu erstellen.

Hybride Speicherung

Track of the day verwendet eine Modell zur hybriden Speicherung von Tracks, Routen und POIs. Dabei werden die GPX-Dateien der Tracks und Routen sowie die Bilder von POIs nicht in der Datenbank selbst, sondern im GPX-Cache gespeichert. Innerhalb der Datenbank werden diese Dateien lediglich über den Dateinamen referenziert. So bleibt die eigentliche Datenbank schnell und kompakt. Ein weiterer Vorteil ist, dass im Falle einer korrupten Datenbank, alle GPX-Dateien sehr einfach aus dem Cache erneut importiert werden können.

Änderungen des Datenmodells

Track of the day wird laufend weiterentwickelt, wobei Wünsche von Nutzern einfließen. Änderungen wie beispielsweise die Einführung der Hashtags machen Erweiterungen des Datenmodells notwendig. Damit Hashtags verwaltet werden können, wurde in den Tabellen Track, Route und POI eine neue Spalte Hashtag ergänzt.

Um unterschiedliche Versionen des Datenmodells unterscheiden zu können, wird bei jedem Start von Track of the day die interne Versionsnummer mit Versionsnummer der Datenbank abgeglichen. Stimmen diese Versionen nicht überein, ist eventuell eine Migration der vorhandenen Datenbestände notwendig. Dies ist ein komplexer Prozess, bei dem vieles schief gehen kann. Daher wird man als Anwender gefragt, ob man bereit ist, eine Migration der Daten durchzuführen.

Hier sollte man nicht leichtfertig auf OK klicken, sondern sicherstellen, dass alle Datengesichert sind und notfalls wiederhergestellt werden können.

Daten neu importieren

Schlägt die automatische Migration fehl, sollte eine neue Datenbank mit der aktuellen Version eingerichtet werden. Dies geschieht beim Neustart von Track of the day ggf. automatisch. Gespeicherte Tracks und Routen und können anschließend in die Datenbank importiert werden. Diese GPX-Dateien sind im GPX-Cache von Track of the day zu finden. Der Pfad sieht üblicherweise so aus:

  • C:\Users\[Your Account]\Documents\Track of the day\Cache\GPXArchive

Bei einem deutschen Windows kann der Pfad auch wie folgt aussehen:

  • C:\Benutzer\[Your Account]\Documente\Track of the day\Cache\GPXArchive

Um Tracks und Routen neu zu importieren geht man wie folgt vor:

  • Track of the day starten
  • Über die Schaltfläche Hinzufügen Track und Routen auswählen
  • Bei sehr vielen Tracks oder Routen, ist es empfehlenswert, nicht alle Dateien auf einmal zu öffnen
  • Nachdem die Tracks und Routen geöffnet sind, kann über das Kontextmenü (rechte Maustaste) die Option Alles zur lokalen Datenbank hinzufügen gewählt werden

POIs können über Hinzufügen geöffnet und erneut importiert werden. Bei POIs kann nicht für alle Elemente sichergestellt werden, dass sie sich erneut importieren lassen. Fotos und Screenshots ohne GEO-Kodierung werden in diesem Schritt übersprungen und nicht importiert.