NEWS
Zurücksetzen einzelner Datenpunkte im SQL-Adapter
-
@thof69
Naja, die Warnungen sind der eigentliche Output.Kontrolliere mal ein paar, ob das plausibel erscheint.
Warum bei dir die Alias-Prüfung nicht klappt (das ist der Teil, den wir gerade geändert haben), verstehe ich allerdings nicht so richtig.
-
Super, vielen Dank!
Kann das mit der Aliasprüfung vielleicht daran liegen, dass ich keinen einzigen definiert habe?
Edit: Die Treffer sind allesamt korrekt.
-
@thof69 said in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:
Kann das mit der Aliasprüfung vielleicht daran liegen, dass ich keinen einzigen definiert habe?
Gute Frage. Ich habe soweit ich weiß allerdings auch keinen einzigen Alias definiert, aber evtl. hatte ich das mal früher. Ich kann mich aber nicht mehr erinnern, ja ja, das Alter
-
Bei mir gibt es auch keine Aliase und es funktioniert.
Gibt es dennalias.0
bei dir? -
Bei mir gibt es auch keine Aliase und es funktioniert.
Gibt es dennalias.0
bei dir?Ja, den gibt es, mit nix drunter:
-
Nee, mit alias.0 hat das meines Wissens nix zu tun. Ich vermute eher, dass es daran liegt, dass es bei dir einige Datenpunkte überhaupt nicht mehr gibt, die aber noch DB Einträge haben.
In dem Fall würde wahrscheinlich folgende Zeile 49 Abhilfe schaffen:
datapointsActiveArray.push(!result[i] || result[i].aliasId.length == 0 ? i : result[i].aliasId);
(Ich kann es gerade nicht selbst testen)
-
Nee, mit alias.0 hat das meines Wissens nix zu tun. Ich vermute eher, dass es daran liegt, dass es bei dir einige Datenpunkte überhaupt nicht mehr gibt, die aber noch DB Einträge haben.
Ja, das ist definitiv der Fall.
In dem Fall würde wahrscheinlich folgende Zeile 49 Abhilfe schaffen:
datapointsActiveArray.push(!result[i] || result[i].aliasId.length == 0 ? i : result[i].aliasId);
Nein, leider nicht:
2023-06-24 16:33:21.322 - error: javascript.0 (74994) script.js.th.DB_bereinigen: [wartung] error: Cannot read properties of undefined (reading 'length') 2023-06-24 16:33:21.323 - error: javascript.0 (74994) script.js.th.DB_bereinigen: [wartung] stack: TypeError: Cannot read properties of undefined (reading 'length') at wartung (script.js.th.DB_bereinigen:50:72) at processTicksAndRejections (node:internal/process/task_queues:95:5)
Allerdings habe ich in der Zwischenzeit auch die delete-Statements laufen lassen und die Datenbank ist sauber.
-
Dann wohl
datapointsActiveArray.push(!result[i] || !result[i].aliasId || result[i].aliasId.length == 0 ? i : result[i].aliasId);
Schade, dass du es jetzt nicht mehr testen kannst.
-
Die Variante sieht gut aus, sie gibt das gleiche Ergebnis wie "datapointsActiveArray.push(i);"
Hier der Log, erster Lauf mit "datapointsActiveArray.push(i);", zweiter mit dieser Variante:
2023-06-24 16:43:34.068 - info: javascript.0 (74994) Start javascript script.js.th.DB_bereinigen 2023-06-24 16:43:34.076 - info: javascript.0 (74994) script.js.th.DB_bereinigen: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2023-06-24 16:43:34.118 - warn: javascript.0 (74994) script.js.th.DB_bereinigen: 0 Objects found, that not exist anymore in ioBroker, sum of items in tables: 0 2023-06-24 16:43:34.118 - info: javascript.0 (74994) script.js.th.DB_bereinigen: Löschen war bei diesem Durchlauf nicht aktiviert. Du kannst die Daten mit den folgenden Kommandos manuell in SQL löschen: 2023-06-24 16:43:38.260 - info: javascript.0 (74994) Stop script script.js.th.DB_bereinigen 2023-06-24 16:43:48.196 - info: javascript.1 (75023) Stop script script.js.th.DB_bereinigen 2023-06-24 16:43:48.196 - info: javascript.0 (74994) Stop script script.js.th.DB_bereinigen 2023-06-24 16:43:50.886 - info: javascript.0 (74994) Start javascript script.js.th.DB_bereinigen 2023-06-24 16:43:50.895 - info: javascript.0 (74994) script.js.th.DB_bereinigen: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2023-06-24 16:43:50.937 - warn: javascript.0 (74994) script.js.th.DB_bereinigen: 0 Objects found, that not exist anymore in ioBroker, sum of items in tables: 0 2023-06-24 16:43:50.937 - info: javascript.0 (74994) script.js.th.DB_bereinigen: Löschen war bei diesem Durchlauf nicht aktiviert. Du kannst die Daten mit den folgenden Kommandos manuell in SQL löschen: 2023-06-24 16:43:56.750 - info: javascript.0 (74994) Stop script script.js.th.DB_bereinigen
Sorry, hätte ich gewusst, dass ich noch testen soll, hätte ich die deletes noch nicht laufen lassen.
-
@thof69 said in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:
Sorry, hätte ich gewusst, dass ich noch testen soll, hätte ich die deletes noch nicht laufen lassen
Kein Problem.
Ich bau mir das Problem bei Gelegenheit mal nach.