[gelöst] configdb recover setzt version number im record auf -1

Begonnen von Klaus Rubik, 09 Januar 2015, 09:55:05

Vorheriges Thema - Nächstes Thema

Klaus Rubik

Hallo,

ich habe heute erstmals versucht mit dem Kommando configdb recover <n> auf eine frühere Version zurückzusetzten. Nach dem shutdown restart habe ich hunderte von Fehlermeldungen im FHEM log ala
Please define FileLog_SZ_Klaus first
Please define FileLog_SZ_Klaus first
Please define Wecker_Klaus first
Please define SZ_Fernseher first
Please define SZ_Fernseher first
Please define SZ_Fernseher first
Please define SZ_Fernseher first
Please define FileLog_SZ_Fernseher first
Please define FileLog_SZ_Fernseher first
Please define FileLog_SZ_Fernseher first
Please define FileLog_SZ_Fernseher first
Please define FZ_Tischlampe first
Please define FZ_Tischlampe first
Please define Poolsteuerung first
Please define FZ_Tischlampe first
Please define FZ_Tischlampe first
Please define FZ_Stehlampe first
Please define FZ_Stehlampe first
Please define FZ_Stehlampe first
Please define FZ_Stehlampe first
Please define FileLog_FZ_Tischlampe first
Please define FileLog_FZ_Tischlampe first
Please define FileLog_FZ_Tischlampe first
Please define TFA_WIND_96_22 first
Please define TRX_UNKNOWN_69 first
Please define WebCam4 first
Please define WebCam4 first


Ich habe dann mal mittels TOAD in SQL-DB geschaut und dabei festgestellt, dass bei der Version 0 in der fhemconfig-Table bei allen Records das Feld Version auf -1 steht und damit das Laden der Config in der richtigen Reihenfolge nicht gewährleistet ist.

in der Version 1 oder höher stimmen die Einträge im Feld Version noch.

Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Klaus Rubik

#2
Hallo Betateilchen,

ich habe es vermutlich gefixt.

Folgende Änderung in der configdb.pm habe ich vorgenommen:

Zeile 802 alt
$sth2->execute($line[0], $line[1], $line[2], $line[3], -1, $touuid);

Zeile 802 neu:
$sth2->execute($line[0], $line[1], $line[2], $line[3], $line[4], $touuid);

Damit hat es jetzt funktioniert. Schein wohl noch ein Relikt aus der Zeit zu sein, bevor Du das Version-Feld gefüllt hast :)

Bitte prüfen und dann einbauen.

Viele Grüße

Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

Klaus Rubik

#3
Hallo Betateilchen,

kannst Du Dir bei der Gelegenheit auch noch die Command-Ref ansehen, dort steht:

configdb recover <version>

Restores an older version from database archive.
set configDB recover 3 will copy version #3 from database to version #0.
Original version #0 will be lost.


Das set-Kommando funktioniert nicht.

Viele Grüße

Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

betateilchen

#4
Es gibt inzwischen überhaupt keine set Befehle mehr für die Konfigurationsdatenbank.

Die set Befehle stammen (erkennbar an den Großbuchstaben in configDB) noch aus der Zeit, als es den configdb Befehl noch nicht gab, vermutlich ist das bei der damaligen Übernahme der commandref passiert, ich werde das korrigieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Klaus Rubik

FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS