Anpassen der Datenbanken nach Programmupdates mit Änderungen des DB-Schemas

  • Hallo,


    da es immer mal wieder zu Versionsprobleme mit Datenbanken kommt, wie z.B. aktuelle QVX-DBs und QV7 bzw jetzt gerade zwischen QVX v1.0.50 und QVXM 1.1.29.1 habe ich hier ein Workaround der ein lesen von vielen Daten untereinander ermöglicht.

    Für den täglichen Gebrauch ist er nicht geeignet und auch nicht gedacht!


    Für diesen Workaround wird das Programm "DB Browser for SQLite" benötigt. Das Programm gibt es für Windows / macOS / Linux und ist unter Windows auch als PortableApp, also ohne Installation nutzbar.


    1) Alle QV-Programme beenden!

    2) Im DB Browser die gewünschte Datenbank öffnen, dazu den Filter auf alle Dateien stellen:


    3) Zu dem Karteireiter "SQL ausführen" wechseln

    4) Mit dem Befehl "Pragma user_version;" fragt man die Userversion der Datenbank ab:

    QV7 kann nur mobileDBs bis einschließlich Version 20009 lesen.


    5) Um eine höhere User_Version zurückzusetzen erweitert man den obigen SQL-Befehl um die gewünschte Versionsnummer, z.B. "Pragma user_version = 20009;"

    Heißt, den Befehl eingeben und mit dem blauen Pfeil ausführen:

    Zur Sicherheit kann man die Versionsnummer jetzt nochmal abfragen, muss jetzt die Version 20009 sein


    6) Danach das Programm schließen, extra gespeichert werden muss in diesem Fall die Datenbank nicht, die neue Userversion ist bereits eingetragen.


    Jetzt sollte QV7 die Datenbank wieder lesen können. Für Wegpunkte, Routen und Tracks habe ich es getestet und funktioniert.


    QVXM 1.1.29.1 nutzt die Userversion 20012, QVX 1.0.50 die Userversion 20014.

    Um jetzt Datenbanken von QVX in QVXM zu nutzen, muss die Userversion ebenfalls nach obigem Muster angepasst werden.


    Ein öffnen der Datenbank in einer neueren QV(X/XM)-Version aktualisiert wieder die Versionsnummer der Datenbank!

    Was wieder zu den Ursprünglichen Problemen und Fehler führt!


    Gruß

    Horst

  • Hallo Horst,

    vielen, vielen Dank, hat beim ersten Versuch funktioniert .

    Ist mir eine große Hilfe beim Umzug nach QV7, da steht noch einiges aus.


    Hartmut

  • Nach ersten Übungen ein Workflow

    das QVX Datenbank Verzeichnis in ein neues Verzeichnis auf der Festplatte kopieren.

    Mit z.B. Total Commander alle .qvmdb in .sqlite umbenennen.

    Im DB Browser den Befehl "Pragma user_version = 20009;" eintragen,

    Mit strg-0 erste Datei öffnen und blauen Pfeil,

    nächste Datei im neuen Verzeichnis öffnen ->blauer Pfeil usw.

    Wenn alles fertig ist, wieder umbenenne und in QV7 einbinden.

    Jetzt überlege ich noch, ob ein Makro zu schreiben länger dauert wie der Weg zu Fuß

    Gruß

    Hartmut

    Edited once, last by hartmut ().

  • Eine andere recht geschmeidige Lösung geht mit Visual Studio Code und der Extension "SQLite3 Editor"; man muss leidglich zwei zusätzliche Einträge in den Settings angeben und anschließend jede DB einmal in VSC öffnen:


  • Hallo Hartmut,

    Mit z.B. Total Commander alle .qvmdb in .sqlite umbenennen.

    Wenn Du den Filter im DB Browser beim DB öffnen auf "alle Dateien" stellst, sollten Dir die *.qvmdb auch ohne umbenennen angeboten werden.

    Bei mir war noch nie ein umbenennen nötig.


    Gruß

    Horst

  • Hallo Horst,

    ist mir schon klar, da es aber bei mir viele Dateien sind, spare ich mir mit dem Umweg Totalcommander -> mehrere Dateien umbenenn den jeweiligen Klick auf "alle Dateien".

    Habe mir ein Makro gemacht:

    "Enter

    click auf den blauen Zeiger

    Steuerung O"


    Dann kann ich ein ganzes Verzeichnis durcharbeiten, mit Dateiname anklicken. Aufruf des Makros über eine Taste Das automatische Aufrufen der nächsten Datei im Makro habe ich nicht geschafft, da muss ich noch eingreifen.

    Habe so in gut einer Stunde alle umgestellt.

    Der Weg über GPX Export Import hätte viel mehr Zeit gekostet.

    Gruß

    Hartmut