NEWS
[Gelöst] Daten aus SQL Datenbank in IOB Neuinstallation
-
@kymchy
Du kannst nach dem Neuaufsetzen beim Hinzufügen des DP zum SQL-Adapter doch die ID manuell mitgeben.
-
@codierknecht sagte in Daten aus SQL Datenbank in IOB Neuinstallation verwenden:
Du kannst nach dem Neuaufsetzen beim Hinzufügen des DP zum SQL-Adapter doch die ID manuell mitgeben.
so hatte ich das nicht verstanden, kenne mich bei SQL aber überhaupt nicht aus.
wenn das Gerät über einen Adapter eingebunden ist, s8llte es sogar in jeder Installation die selbe ID haben, bei Gerätewechsel schreibe ich auch über den History-Alias weiter in die ID des alten Geräts.Bei der Aussage
@kymchy sagte in Daten aus SQL Datenbank in IOB Neuinstallation verwenden:
einen Datenpunkt dem SQL Adapter zuweisen, würde dieser eine neue ID bekommen und ich könnte keine Abfrage mehr über die alte ID machen bzw. würde keine neuen Daten über die alte ID bekommen.
vermute ich dass es sich um eine Datenbank/Datensatz ID handelt.
-
vermute ich dass es sich um eine Datenbank/Datensatz ID handelt.
Genau
-
du must die alte db
kopieren in die neue Installation (an die gleiche Stelle).Müsste so klappen.
-
@bahnuhr habe kein sqllite, ist der SQL Adapter
-
@kymchy sagte in Daten aus SQL Datenbank in IOB Neuinstallation verwenden:
@bahnuhr habe kein sqllite, ist der SQL Adapter
Genau den hab ich auch.
-
@bahnuhr ja, aber mit SQLLite, ich habe MariaDB auf einem anderen Server
-
@homoran sagte in Daten aus SQL Datenbank in IOB Neuinstallation verwenden:
so hatte ich das nicht verstanden, kenne mich bei SQL aber überhaupt nicht aus.
Das funktioniert so tatsächlich nicht.
Bei den Datenpunkten wird dadurch lediglich der Name des DP beim Logging beeinflusst - nicht aber die ID in der DB.
@Kymchy
Lege doch beim Neuaufsetzen eine neue DB in MariaDB an und pumpe die alten Einträge später per SQL-Statement dort rein. -
@Kymchy
Lege doch beim Neuaufsetzen eine neue DB in MariaDB an und pumpe die alten Einträge später per SQL-Statement dort rein.Ja, danke! Die Idee hatte ich auch schon, aber wie bekomme ich die Daten mit der ID 13 der alten DB auf die ID 1 der neuen DB?
-
@kymchy sagte in Daten aus SQL Datenbank in IOB Neuinstallation verwenden:
@Kymchy
Lege doch beim Neuaufsetzen eine neue DB in MariaDB an und pumpe die alten Einträge später per SQL-Statement dort rein.Ja, danke! Die Idee hatte ich auch schon, aber wie bekomme ich die Daten mit der ID 13 der alten DB auf die ID 1 der neuen DB?
INSERT INTO NeueDB.ts_number (SELECT 1 AS id, ts, val, ack, _from, q FROM AlteDB.ts_number WHERE id=13)
-
@codierknecht ah, super! Das kann ich doch direkt in phpMyAdmin machen, oder?
-
@kymchy sagte in Daten aus SQL Datenbank in IOB Neuinstallation verwenden:
@codierknecht ah, super! Das kann ich doch direkt in phpMyAdmin machen, oder?
Jepp - gerade getestet
-
@codierknecht genial, das ist genau das, was ich brauche! Probiere ich nachher mal aus.
Update: Funktioniert super!
-
@kymchy sagte in Daten aus SQL Datenbank in IOB Neuinstallation verwenden:
@codierknecht genial, das ist genau das, was ich brauche! Probiere ich nachher mal aus.
Update: Funktioniert super!
Dann markiere den Beitrag bitte als [gelöst]
-
Ergänzend noch:
Dem ioBroker.sql Adapter ist die ID innerhalb der DB egal. Er sucht zuerst in der Tabelle datapoints.name nach dem Namen des DPs und geht dann über die ID in die Tabellen mit den eigentlichen Daten (ts_number, ts_bool, ts_string, ts_counter).
Wenn sich eine Quelle (also ein DP innerhalb ioBroker) für die Daten ändert, kannst du das auf 2 Wegen lösen:
- Du benutzt die Alias Funktion
- Du änderst in der Tabelle datapoints den Namen
Dabei solltest du aber die Reihenfolge (1. Deaktivieren der Historyfunktion bei dem alten DP; 2. Ändern des Namens in der Tabelle datapoints, 3. Aktivieren der Historyfunktion beim neuen DP) einhalten.
Wenn die Reihenfolge nicht eingehalten wird, erstellt dir der Adapter einen neuen Eintrag in datapoints mit einer neuen ID und dann müsstest du auch die ID der Daten in den Tabellen ts_* ändern um deine Einträge wieder zu "finden".
Ich habe über den zweiten Weg sämtliche DPs bei mir auf Alias-DPs umgezogen - Fleißarbeit, aber es geht. Die Alias-Funktion des Adapters könnte das zwar auch, aber dann verlierst auch irgendwann den Überblick was zu was gehört
-
@darkiop Jap, vielen Dank!