Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Sql adapter 1.4.3 Fehler

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Sql adapter 1.4.3 Fehler

    This topic has been deleted. Only users with topic management privileges can see it.
    • frankjoke
      frankjoke last edited by

      Hallo mitsammen!

      Habe gestern den Adapter auf auf 1.4.3 upgedated (leider auch mein Produktionssystem).

      Ich verwende Sqlite3 und hatte keine Probleme bis jetzt (Mit Ausnahme dass der Adapter leider bei belegter Datenbank manchmal einen Fehler meldet anstatt es später zu versuchen).

      Nun, habe den Adapter auf 1.4.2 zurückgestellt und der Fehler bleibt 😞

      Heute wollte ich neue Datenpunkte loggen um meine scripte zu testen. Leider funktioniert das nicht mehr!

      Setzt man im object-browser das loggen für sql.0 auf aktiviert setze wird der Datenpunkt nicht in die 'datapoints'-Tabelle eingetragen und beim Loggen werden dann natürlich fehler erzeugt da die Datenbank die Type und damit die richtige Wertetabelle nicht bestimmen kann.

      Fehler die entstehen:

      sql.0	2017-02-07 14:28:57.364	warn	Cannot get index of "javascript.1.StateMachine.Astro": Error: SQLITE_CONSTRAINT: NOT NULL constraint failed: datapoints.id
      sql.0	2017-02-07 14:28:57.363	error	Cannot insert INSERT INTO datapoints (name, type) VALUES('javascript.1.StateMachine.Astro', 0);: Error: SQLITE_CONSTRAINT: NOT NULL constraint failed: datapoints.id
      sql.0	2017-02-07 14:28:47.759	warn	Cannot get index of "javascript.1.StateMachine.Astro": id not found
      history.0	2017-02-07 14:28:36.829	info	enabled logging of javascript.1.StateMachine.Astro
      sql.0	2017-02-07 14:28:30.109	warn	Cannot get index of "javascript.1.StateMachine.Astro": id not found
      web.0	2017-02-07 14:28:29.796	info	2017-02-07T13:28:29.796Z Connected system.user.admin
      sql.0	2017-02-07 14:28:28.202	warn	Cannot get index of "javascript.1.StateMachine.Astro": id not found
      

      Beim History-adapter funktioniert das Hinzufügen von neuen Objekten!

      Eine weitere Analyse (siehe Fehlerliste oben) bringt zu tage dass bei dem INSERT INTO der 'id' fehlt!

      Habe den adapter händisch eingetragen mit:

      INSERT INTO datapoints (id, name, type) VALUES(64,'javascript.1.StateMachine.Astro', 0);

      dann im admin.objektbrowser eine Werteänderung erzeugt und da kam noch ein Error:

      sql.0	2017-02-07 14:57:36.552	warn	Cannot get "from" for "system.adapter.admin.0": Error: SQLITE_CONSTRAINT: NOT NULL constraint failed: sources.id
      sql.0	2017-02-07 14:57:36.550	error	Cannot insert INSERT INTO sources (name) VALUES('system.adapter.admin.0');: Error: SQLITE_CONSTRAINT: NOT NULL constraint failed: sources.id
      
      

      Also fehlt auch beim Eintragen der Quelle in die sources Tabelle der id!

      Nachdem ich händisch in der Datenbank in den sources und datapoints die daten hinzugefügt habe (mit neuen id's) kann ich loggen!

      Was geht da schief? Ist vielleicht ein neueres Sqlite die Schuld?

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Welche Version hattest Du davor? Es hat sich an der ganzen Logik an sich nichts geändert. SQLite ist (wie Du auch schon schreibst) so ne Sache … Eine Frage wäre ob es wieder funktioniert wenn Du das db-File wegwirfst (ja ich weiss alle früheren Daten weg) und quasi neu startest?

        1 Reply Last reply Reply Quote 0
        • frankjoke
          frankjoke last edited by

          Du hast Recht, es liegt nicht an ioBroker.

          Es fehlen die Autoincrement-Einträge und die scheinen beim re-importieren von einem anderen System verloren gegangen zu sein.

          Ich habe ca. 1,5Mio Datensätze in der 70M-Datei gespeichert, z.B. Temperatur und Heizungsdaten der letzten 4 Jahre, inzwischen insgesamt an die 40 verschiedene Sensoren oder kalkulierte Werte.

          Werd mir jetzt ein script schreiben mit dem man eine sql (sqllite oder mysql) auf eine andere übertragen kann oder wo man daten importieren kann…

          Momentan helf ich mir aus die tables mit den id's selbst upzudaten wodurch ich die Datenbank weiter verwenden kann bevor das script 100%tig fertig ist in einigen Tagen...

          p.s.: Bei den Analysen hab ich jetzt sqlitebrowser auf dem test-Raspi verwendet, nettes tool für Unix & Sqllite!

          Danke jedenfalls für den Ansporn die Sql-Datei zu untersuchen!

          1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 last edited by

            Die Struktur der DB-Tabellen ist bei allen recht ähnlich. Wenn Du auf die SQLite Datei an sich zugreifen kannst und so über ein anderes Tool die Daten pro Tabelle Selektieren kannst dann sollte das einfach gehen. Vllt ist das hier eine Idee:

            http://stackoverflow.com/questions/5776 … ell-script

            SQLite in CSV exportieren ... dann vom iobroker die "neue" db anlegen lassen und dann die csv Files dort importieren. Die Datenfelder sollten alle ähnlich/gleich sein

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            961
            Online

            31.6k
            Users

            79.4k
            Topics

            1.3m
            Posts

            2
            4
            1011
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo