fhem configuration in sql-DB ablegen - besteht Interesse?

Begonnen von betateilchen, 12 Februar 2014, 11:09:56

Vorheriges Thema - Nächstes Thema

rudolfkoenig


betateilchen

äh... abgesehen davon, dass das für mich bekanntermaßen keine ernstzunehmende Hardware abseits von Telefonie und Netzwerk (und nichtmal das netzwerken kann sie vernünftig) ist, stellt sich mir folgende Frage:

Bist Du Dir sicher, dass da sqlite nicht schon ab Werk in der Firmware enthalten ist?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Doof, wenn man was zugeben muss:
# cd /
# find . -print | grep -i sql
./lib/libsqlite3-3.7.14.1.so.0
./lib/libsqlite3-3.7.14.1.so.0.8.6
./lib/libsqlite3.so


betateilchen

#33
*g*

Ich bin übrigens eher durch einen logischen Denkansatz draufgekommen, als ich mir überlegt hatte, dass für die Anruflisten, Mediaserver und FritzNAS irgendeine Datenbank auf der Kiste vorhanden sein muss. Und da drängelt sich sqlite einfach auf.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#34
Hallo Rudi!

Zitat von: Rudi- das eval habe ich verschoben, damit es nur dann ausgefuehrt wird, falls noetig ist. Bitte testen.

Das funktioniert so nicht. Für die Migration einer bestehenden Konfiguration wird die Library gebraucht, obwohl fhem in diesem Fall noch nicht mit der Datenbank-Option gestartet wurde. Jetzt weiß ich auch wieder, warum ich das eval damals mit zu den Forward-Deklarationen gepackt hatte...

Ausserdem ist mir noch aufgefallen:


  • die $id wird in "version" nicht angezeigt (dafür gibts nen patch, siehe unten)
  • configDB.pm wird von "update" nicht nicht berücksichtigt
  • das Verzeichnis contrib/configDB wird von update nicht berücksichtigt

Viele Grüße
Udo



Index: fhem.pl
===================================================================
--- fhem.pl (revision 5106)
+++ fhem.pl (working copy)
@@ -129,6 +129,8 @@
sub cfgDB_SaveState;
sub cfgDB_SaveCfg;
sub cfgDB_GlobalAttr;
+sub cfgDB_svnId;
+eval "use configDB";

##################################################
# Variables:
@@ -373,8 +375,8 @@
doGlobalDef($ARGV[0]);

if($attr{global}{configfile} eq 'configDB') {
-  eval "use configDB";
-  Log 1, $@ if($@);
+#  eval "use configDB";
+#  Log 1, $@ if($@);
   cfgDB_Init();
}

@@ -2327,6 +2329,7 @@
   my ($cl, $param) = @_;

   my @ret = ("# $cvsid");
+  push @ret, cfgDB_svnId if $attr{global}{configfile} eq 'configDB';
   foreach my $m (sort keys %modules) {
     next if(!$modules{$m}{LOADED} || $modules{$m}{ORDER} < 0);
     my $fn = "$attr{global}{modpath}/FHEM/".$modules{$m}{ORDER}."_$m.pm";



dann klappts auch mit der Versionsanzeige:

(http://up.picr.de/17535949nn.png)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

ZitatFür die Migration einer bestehenden Konfiguration wird die Library gebraucht,
Ist immer noch kein Grund es bei 99% der FHEM Benutzer auszufuehren, und damit auch das DBI Modul zu laden. Nur die Anweisung fuer die Migration muss geaendert werden:
{use configDB;; cfgDB_Migrate()}

Die zwei cfgDB_svnId Zeilen habe ich hinzugefuegt.

betateilchen

Zitat von: rudolfkoenig am 03 März 2014, 14:22:40
Nur die Anweisung fuer die Migration muss geaendert werden:

Auch eine Variante, danke. Werde ich so in die Doku übernehmen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: rudolfkoenig am 01 März 2014, 09:08:48

- cfgDB_ReadAll() usw. sollten die gesammelten Fehlermeldungen zurueckliefern. Danach muessen wir fhem.pl wieder anpassen.


In #5111 eingebaut, cfgDB_ReadAll() liefert jetzt die gesammelten $ret von AnalyzeCommandChain() zurück.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig


betateilchen

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

betateilchen

klopf klopf klopf...

Gibt es irgendwelche Gründe oder von mir unerfüllte Aufgaben, die das Einbinden der configDB.pm in den regulären Update-Prozeß verhindern?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Nur meine Vergesslichkeit. Habe configDB.pm zu fhemupdate.pl hinzugefuegt, und fhemupdate.pl ausgefuehrt. Ab sofort wird configDB.pm per upload geliefert.

betateilchen

#42
Danke.

edit: wenn irgendwann noch das template-Verzeichnis ./contrib/configDB ... *ganz-fest-wünsch*
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Hallo Rudi,

ich brauche bitte Deine Hilfe, da Du das 98_backup.pm besser kennst als ich.

Da passieren momentan komische Dinge, wenn jemand configDB nutzt und beim update ein backup gemacht werden soll.
Da wird dann versucht, 1.) ein configfile namens "configDB" in das tar zu schicken und 2.) das configfile zu parsen.

Kannst Du Dir das bei Gelegenheit mal anschauen? Mir war das noch nicht aufgefallen, da es bei mir vor einem update kein Backup gibt.
Aber die Anwender sind da drüber gestolpert.

http://forum.fhem.de/index.php/topic,21183.0.html


Viele Grüße
Udo

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

rudolfkoenig

Zitatedit: wenn irgendwann noch das template-Verzeichnis ./contrib/configDB ... *ganz-fest-wünsch*

Erstens weiss nicht genau was du wuenscht, aber contrib wird nicht per update ausgeliefert, und das bleibt so.
Zweitens bitte beachten bei edits: diese werden per email nicht ausgeliefert, und ich reagiere nur zufaellig darauf, diesmal wg. dem neuen Beitrag.

Zitat... komische Dinge, wenn jemand configDB nutzt und beim update ein backup gemacht werden soll.
Ich habe update modifiziert, so dass ohne gesetztes backup_before_update und configDB kein backup gemacht wird.

backup liefert ab sofort bei configDB eine Fehlermeldung zurueck, da ich auf die schnelle kein generisches Datenbank-Backup programmieren wollte, und ohne die FHEM Konfiguration ein Backup mAn sinnlos ist.