Ankündigung

Einklappen
Keine Ankündigung bisher.

SQLite Datenübernahme

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    SQLite Datenübernahme

    Jetzt habe ich schon mehrere Versuche unternommen, die smarthome.db ins neue SmartHomeNG zu übernehmen.
    wenn ich die bd lösche, wird beim Start von SmartHomeNG eine neue angelegt; wenn ich die db von Smarthome.py kopiere, gibt es keine Meldungen, allerdings zeigen die Plots nur die neuen Daten. Die db wird aber offensichtlich fortgeschrieben.

    gibt es denn keine Möglichkeit, die aufgezeichneten Daten zu erhalten/übernehmen ?

    #2
    whe das SQlite Plugin ist in SHNG für die SV >= 2.8 ein anderes als früher.. MWelches SQlite Plugin nutzt Du, welche SV verwendest Du? Soweit ich das im Code derzeit sehe, sollte das sqlite_visu2_8 aber automatisch ein Upgrade machen. Du brauchst danach aber auch die SmartVisu >= 2.8 für charts etc.
    Zuletzt geändert von psilo; 06.06.2017, 16:02.

    Kommentar


      #3
      Ich habe zwei Installationen auf 2 verschiedenen Rechnern.
      auf dem einen läuft Smarthome.py mit SmartVISU 2.7
      auf dem anderen SmartHomeNG mit SmartVISU 2.8 ( hier habe ich das image 1.4 aufgesetzt.
      jetzt habe ich beide Konfigurationen angepasst und wollte einfach die alte durch die neue ablösen.
      dazu habe ich dann im letzten Schritt die db von einem Rechner auf den anderen kopiert ( natürlich zunächst smathome gestoppt und nach dem Austausch der db wieder gestartet ) hilft alles nichts.

      Kommentar


        #4
        whe trotzdem nochmal die Frage: verwendest du auf der neuen Installation das sqlite_visu2_8 plugin und hast das alte herausgenommen? Da ich weder das Image nutze, noch damals ein DB Upgrade gemacht habe, kann ich leider tiefgreifender nicht helfen. Aktuell bin ich sowieso schon auf dem Database, das hoffentlich demnächst endlich releasereif ist.

        Eine Upgradefunktion hat das sqlite_visu2_8 plugin wie gesagt.. Du kannst ja auch mal mit einem sqlite viewer direkt in das File schauen

        Kommentar


          #5
          selbstverständlich benutze ich mit VISU 2.8 auch das entspr. Plugin.
          ob das DB Upgrade ausgeführt wird, kann ich nicht feststellen, das dazugehörige Coding sieht mir aber sehr mager aus.
          Ich habe mir auch die Inhalte angeschaut und kann da keinen Übergang feststellen.
          Ich habe die Vermutung, dass Smartvisu sich envtl irgendwelche timestamps für die DB-Zugriffe setzt.

          Kommentar


            #6
            Hmm also soweit ich das sehe werden hier die Daten relativ klar von der Tabelle history in die aktuellere num transferiert:
            Code:
            def Upgrade(db, version):
                if version == 1:
                    logger.warning("SQLite: dropping history!")
                    db.execute("DROP TABLE history;")
                    db.execute("DROP INDEX IF EXISTS idx;")
                    db.execute("DROP INDEX IF EXISTS idy;")
                elif version == 2:
                    # history: time, item, avg, vmin, vmax, power
                    logger.info("SQLite: upgrading database.")
                    db.execute("DROP INDEX IF EXISTS idy;")
                    for item in db.execute("SELECT item FROM history GROUP BY item;").fetchall():
                        end = 0
                        for row in db.execute("SELECT * FROM history WHERE item='{}' ORDER BY time DESC;".format(item[0])).fetchall():
                            time, item, avg, vmin, vmax, power = row
                            if end:
                                insert = (time, item, end - time, avg, vmin, vmax, power)
                                db.execute("INSERT INTO num VALUES (?,?,?,?,?,?,?);", insert)
                            end = time
                    db.execute("DROP TABLE history;")
                elif version == 3:
                    #_start, _item, _dur, _avg, _min, _max, _on
                    pass
                db.execute("VACUUM;")
                db.commit()
            Gibt es die "num" bei Dir?

            Kommentar


              #7
              wenn ich das richtig recherchiert habe hat die Datenbank schon in der alten Umgebung die version=3.
              somit wird nichts transferiert.
              Aber jetzt werde ich das nochmal genau analysieren. Danke für den Hinweis.
              Jetzt weiß ich worauf ich achten muss.

              Kommentar


                #8
                danke psilo,

                mich hatte es schon gewundert, dass in meiner db bereits version 3 drin stand.
                nachdem ich die jetzt manuell auf 2 gesetzt habe, wird sie beim starten von SmartHomeNG auch konvertiert:

                Code:
                2017-06-07  12:08:01 WARNING  Main         BackendServer: Giving plaintext password in configuration is insecure. Consider using 'hashed_password' instead!
                2017-06-07  12:08:01 WARNING  Main         CLI: You should set a password for this plugin.
                [B]2017-06-07  12:08:03 INFO     Main         SQLite: upgrading database. Please wait!
                2017-06-07  12:08:03 INFO     Main         SQLite: upgrading database.[/B]
                2017-06-07  12:08:52 INFO     Main         Init Items
                2017-06-07  12:08:54 INFO     Main         Items: 166
                2017-06-07  12:08:54 INFO     Main         Start Logics
                2017-06-07  12:08:54 INFO     Main         Start Plugins
                2017-06-07  12:08:54 WARNING  smartvisu    Installing widgets into smartVISU
                jetzt sieht alles schon besser aus.
                es könnte sein, dass durch Übungen mit dem sqlite-visu2.8 plugin im alten System die version schon umgesetzt wurde (ohne die Daten zu migrieren)

                da haben wir jetzt wieder eine Hürde geschafft.

                danke Wil

                Kommentar

                Lädt...
                X