[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