[vz-users] Datenbankportierung und neue Struktur
Michael Hartmann
hartmann-micha at web.de
So Dez 25 15:36:37 CET 2022
Hallo Sven,
zur Konvertierung verweise ich auf einen post von jau im PV-Forum: https://www.photovoltaikforum.com/thread/173921-datenbank-portierung/?postID=2624435#post2624435 und meine Ergänzung dazu: https://www.photovoltaikforum.com/thread/173921-datenbank-portierung/?postID=2925923#post2925923
Konkret läuft das dann so:
1. Sicherung (sqldump) der DB als Fallback
2. Ändern der alten DB mit: php /var/www/volkszaehler.org/bin/doctrine orm:schema-tool:update --force
3. Sicherung der DB für Transfer
4. neue DB mit doctrine anlegen php /var/www/volkszaehler.org/bin/doctrine orm:schema-tool:create
5. Sicherung aus 3 auf neuer DB einspielen
Das funktioniert eben bis auf das Sichern (3) und Einspielen (5) der Daten in die neue DB (properties, entities werden mit copy korrekt übertragen). Und bei mir ist es genauso wie bei dir, ändere ich den transfer mode für data von pk auf copy bekomme ich nur 1000 Datensätze rüber.
Grüße
Micha
Von: volkszaehler-users [mailto:volkszaehler-users-bounces at demo.volkszaehler.org] Im Auftrag von dies und das
Gesendet: Sonntag, 25. Dezember 2022 15:22
An: volkszaehler.org - users
Betreff: Re: [vz-users] Datenbankportierung und neue Struktur
Hallo Micha,
ich habe das gleiche Problem und viel probiert, einen Teil Erfolg hatte ich mit der Änderung
in dbcopy.yaml für DATA von pk auf copy.
Das Ergebnis war zwar das dbCopy Meldete alle rows übertragen zuhaben beim Nachschauen aber immer
nur 1000 Einträge in der neuen Zieldatenbank waren egal ob mysql oder sqlight.
Mit meinem Halbwissen bin ich leider nicht weitergekommen.
Mich würde interessieren wie du die Konvertierung hinbekommen hast ich habe dazu keine Lösung gefunden.
Mfg
Sven
Am Sa., 24. Dez. 2022 um 13:01 Uhr schrieb Michael Hartmann <hartmann-micha at web.de>:
Hallo,
aktuell läuft eine komplette VZ-Installation auf einem Raspi3 mit µSD. Ich möchte DB, Frontend und Middleware auf einen weiteren Raspi4 mit SSD auslagern.
Die DB-Struktur hat sich zwischenzeitig geändert. Die alte, automatisch vergebene fortlaufende ID ist entfallen und der primary key ist nun die Kombination aus channel_id und timestamp.
Ich habe als Probelauf die DB auf meinem Test-/Spielsystem auf die neue Struktur konvertiert. Das hat funktioniert. Ich kann auf alle Daten zugreifen und auch über die API manuell Daten schreiben.
MariaDB [volkszaehler]> show columns from data;
+------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+---------+-------+
| channel_id | int(11) | NO | PRI | NULL | |
| timestamp | bigint(20) | NO | PRI | NULL | |
| value | double | NO | | NULL | |
+------------+------------+------+-----+---------+-------+
3 rows in set (0.028 sec)
Nun wollte ich die DB mittel dbcopy in eine SQLite DB sichern um sie auf den Raspi4 einzuspielen. Da meckert dbcopy das es keinen simple primary key in data findet…
entities: copying 11 rows (overwrite)
[============================] 100% < 1 sec/< 1 sec 11 rows
properties: copying 90 rows (overwrite)
[============================] 100% < 1 sec/< 1 sec 90 rows
entities_in_aggregator: copying 0 rows (overwrite)
0 [->--------------------------] < 1 sec 6.0 MiB
In CopyCommand.php line 40:
Table data doesn't have a simple primary key
Wie bekomme ich dbcopy erklärt das es nun channel_id und timestamp als primary key verwenden soll?
Viele Grüße
Micha
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20221225/8167aa91/attachment-0001.html>
Mehr Informationen über die Mailingliste volkszaehler-users