[vz-users] dbcopy

dies und das 6ecoopen at googlemail.com
Mo Aug 15 18:45:26 CEST 2022


Hallo,

ich glaube die Annahme aus Meiner letzten Mail war falsch, ich bin auf die
Idee gekommen in der dbcopy.yaml
die Einstellung für data von pk auf copy zu ändern.

pi at raspberrypi:~ $ /var/www/volkszaehler.org/vendor/bin/dbcopy copy -c
/etc/dbcopy1.yaml
Dropping FK FK_B77949FF72F5A1AA on aggregate
entities: copying 1 rows (overwrite)
 [============================] 100%  < 1 sec/< 1 sec  1 rows

properties: copying 7 rows (overwrite)
 [============================] 100%  < 1 sec/< 1 sec  7 rows

entities_in_aggregator: copying 0 rows (overwrite)
    0 [->--------------------------] < 1 sec 6.0 MiB

data: copying 403012 rows (overwrite)
 [============================] 100%   2 secs/2 secs   403012 rows

aggregate: skipping
Creating FK FK_B77949FF72F5A1AA on aggregate

Also das Kopieren scheint zu funktionieren, zumindest ein bisschen.
Wenn ich mir auf dem Ziel-Server die daten anschaue würden aber nur 1000
Zeilen übertragen???

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 59
Server version: 10.5.15-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.

MariaDB [(none)]> use volkszaehler_bak
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [volkszaehler_bak]> SELECT COUNT(*) FROM data;
+----------+
| COUNT(*) |
+----------+
|     1000 |
+----------+
1 row in set (0.001 sec)

MariaDB [volkszaehler_bak]>

jemand eine Idee was da Falsch läuft

Mfg Sven

Am Fr., 12. Aug. 2022 um 17:29 Uhr schrieb dies und das <
6ecoopen at googlemail.com>:

> Hallo,
>
> heute habe ich mir noch mal die Quelldatenbank auf dem Rpi mit HeidiSQL
> angesehen, dabei ist mir folgendes aufgefallen
>
> in der Tabelle data unter dem Tab Indizes sind innerhalb von Primary Key
> zwei Einträge, channel_id und timestamp.
> Direkt unter Primary Key ist (wenn ich das richtig verstanden habe) dann
> der Key für channel_id, für timestamp gibt es keinen.
> Jetzt frage ich mich natürlich ob da noch ein Key für timestamp sein
> sollte?
> Könnte das der Fehler sein?
>
> Zur Info Aktuell habe ich Sqlite nicht installiert, Ziel-Datenbank ist
> eine Mariadb Instanz auf meinem Server
>
> Wäre schön wenn mir da jemand weiterelfen könnte ich habe keine Ahnung was
> ich noch versuchen könnte.
>
> Mfg Sven
>
> [image: volkszaehler-db-Quelle.JPG]
>
> Am Mi., 10. Aug. 2022 um 18:02 Uhr schrieb dies und das <
> 6ecoopen at googlemail.com>:
>
>> Hallo,
>>
>> ich habe das Volkszaehler.img noch mal neu aufgespielt, jetzt
>> funktioniert das anlegen der SQLite Datenbank.
>> Aber beim kopieren der Daten in die sqlite.db3 auf dem Rpi bekomme ich
>> jetzt bei der Data Tabelle einen fehler
>>
>>   /var/www/volkszaehler.org/vendor/bin/dbcopy copy -c /etc/dbcopy1.yaml
>> entities: copying 1 rows (overwrite)
>>  [============================] 100%  < 1 sec/< 1 sec  1 rows
>>
>> properties: copying 7 rows (overwrite)
>>  [============================] 100%  < 1 sec/< 1 sec  7 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
>>
>> mfg Sven
>>
>> Am So., 7. Aug. 2022 um 18:19 Uhr schrieb dies und das <
>> 6ecoopen at googlemail.com>:
>>
>>> Hallo,
>>>
>>> ich möchte dbcopy verwenden, zum Testen habe ich das aktuelle
>>> Volkszäher.img auf einem Rpi2 installiert
>>> um Werte in die Datenbank zubekommen ist aktuell ein 1-Wire
>>> Temperatursensor angeschlossen.
>>>
>>> Als Backup Ziel soll mein Win-Homserver dienen auf diesem läuft eine
>>> Virtuelle Maschine mit einer Aktuellen Debian-11.4.0 Installation,
>>> MariaDB-Server ist installiert, vz-admin mit rechten und Test-Datenbank
>>> (pi-test) sind angelegt.
>>>
>>> Vom Testsystem (rpi2) kann ich mich mit dem Server verbinden
>>> mysql -h 192.168.178.23 -uvz-admin -p1234 pi-test
>>>
>>> Hier https://wiki.volkszaehler.org/software/tools/dbcopy
>>> ist beschrieben dass In der Standardinstallation dbcopy direkt nutzbar
>>> ist.
>>> War mir nicht sicher also habe ich folgenden Befehl noch ausgeführt.
>>>
>>> sudo chmod +x /var/www/volkszaehler.org/vendor/bin/dbcopy
>>>
>>> sudo cp /var/www/volkszaehler.org/etc/dbcopy.dist.yaml /etc/dbcopy.yaml
>>>
>>> sudo nano /etc/dbcopy.yaml
>>> # DATABASE DEFINITION
>>> source:
>>>   driver: pdo_mysql
>>>   host: localhost
>>>   user: vz
>>>   password: demo
>>>   dbname: volkszaehler
>>> target:
>>>   driver: pdo_mysql
>>>   host: 192.168.178.23
>>>   user: vz-admin
>>>   password:1234
>>>   dbname: pi-test
>>> #  path: sqlite.db3		# path is only used if driver = pdo_sqlite
>>>  # influxdb target database connection
>>> influx:
>>>   dsn: influxdb://localhost:8086
>>>   dbname: volkszaehler
>>>   measurement: data
>>>  # TABLE DEFINITION# ----------------# tables will be processed in the order they are mentioned:#		- foreign keys on target will be dropped#		- if a table is not listed here, it will not be touched# transfer mode#		skip:		table will not be copied#		copy:		entire table will be truncated on target and copied from source#		pk:			selective copy by primary key. only data not present on target# 					will be copied from source.
>>> tables:
>>>   entities: copy
>>>   properties: copy
>>>   entities_in_aggregator: copy
>>>   data: pk
>>>   aggregate: skip
>>> Nächster Schritt Zieldatenbank erstellen mit
>>> /var/www/volkszaehler.org/vendor/bin/dbcopy create -c /etc/dbcopy.yaml
>>>
>>> Hier bekomme ich folgende Fehlermeldung
>>>
>>> Creating target schema
>>> Creating tables
>>> PHP Fatal error:  Uncaught Error: Class 'Doctrine\DBAL\Schema\Synchronizer\SingleDatabaseSynchronizer' not found in /home/pi/volkszaehler.org/vendor/andig/dbcopy/src/Command/CreateCommand.php:151
>>> Stack trace:
>>> #0 /home/pi/volkszaehler.org/vendor/andig/dbcopy/vendor/symfony/console/Command/Command.php(298): DatabaseCopy\Command\CreateCommand->execute()
>>> #1 /home/pi/volkszaehler.org/vendor/andig/dbcopy/vendor/symfony/console/Application.php(1024): Symfony\Component\Console\Command\Command->run()
>>> #2 /home/pi/volkszaehler.org/vendor/andig/dbcopy/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand()
>>> #3 /home/pi/volkszaehler.org/vendor/andig/dbcopy/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun()
>>> #4 /home/pi/volkszaehler.org/vendor/andig/dbcopy/dbcopy(35): Symfony\Component\Console\Application->run()
>>> #5 /home/pi/volkszaehler.org/vendor/bin/dbcopy(112): include('/home/pi/volksz...')
>>> #6 {main}
>>>   thrown in /home/pi/volkszaehler.org/vendor/andig/dbcopy/src/Command/CreateCommand.php on line 151
>>> pi at pi-Test:~ $
>>>
>>> Ich habe dann mit HeidiSQL das Datenbankschema vom Pi exportiert (ohne Daten) und auf dem Server importiert
>>>
>>> [image: pi-test.JPG]
>>>
>>> pi at pi-Test:~ $ /var/www/volkszaehler.org/vendor/bin/dbcopy copy -c /etc/dbcopy.yaml
>>> Dropping FK FK_87C331C781257D5D on properties
>>> Dropping FK FK_2BD88468DD62C21B on entities_in_aggregator
>>> Dropping FK FK_2BD88468727ACA70 on entities_in_aggregator
>>> Dropping FK FK_ADF3F36372F5A1AA on data
>>> Dropping FK FK_B77949FF72F5A1AA on aggregate
>>> entities: copying PHP Fatal error:  Uncaught Error: Call to undefined method Doctrine\DBAL\Connection::fetchColumn() in /home/pi/volkszaehler.org/vendor/andig/dbcopy/src/Command/CopyCommand.php:116
>>> Stack trace:
>>> #0 /home/pi/volkszaehler.org/vendor/andig/dbcopy/src/Command/CopyCommand.php(223): DatabaseCopy\Command\CopyCommand->copyTable()
>>> #1 /home/pi/volkszaehler.org/vendor/andig/dbcopy/vendor/symfony/console/Command/Command.php(298): DatabaseCopy\Command\CopyCommand->execute()
>>> #2 /home/pi/volkszaehler.org/vendor/andig/dbcopy/vendor/symfony/console/Application.php(1024): Symfony\Component\Console\Command\Command->run()
>>> #3 /home/pi/volkszaehler.org/vendor/andig/dbcopy/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand()
>>> #4 /home/pi/volkszaehler.org/vendor/andig/dbcopy/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun()
>>> #5 /home/pi/volkszaehler.org/vendor/andig/dbcopy/dbcopy(35): Symfony\Component\Console\Application->run()
>>> #6 /home/pi/volkszaehler.org/vendor/bin in /home/pi/volkszaehler.org/vendor/andig/dbcopy/src/Command/CopyCommand.php on line 116
>>> pi at pi-Test:~ $
>>>
>>>
>>> Ok dachte ich mir hier kommst nicht weiter also habe ich es so wie in der o.g. Anleitung versucht.
>>>
>>> Auf dem Rpi also Sqlite installiert die /etc/dbcopy.yaml angepasst.target:
>>>   driver: pdo_sqlite
>>>   host: localhost
>>>   user: vz-admin
>>>   password: secure
>>>   dbname: volkszaehler_backup
>>>   path: /home/pi/pi-test.db3
>>>
>>> Nach Eingabe von /var/www/volkszaehler.org/vendor/bin/dbcopy create -c /etc/dbcopy.yaml
>>> kommt der Fehlerpi at pi-Test:~ $ /var/www/volkszaehler.org/vendor/bin/dbcopy create -c /etc/dbcopy.yaml
>>> Creating target schema
>>>
>>> In Exception.php line 22:
>>>
>>>   Operation 'Doctrine\DBAL\Platforms\AbstractPlatform::getListDatabasesSQL' is not supported by platform.
>>>
>>> create [-c|--config CONFIG]
>>>
>>> pi at pi-Test:~ $
>>>
>>> ich habe Tante G befragt aber nichts gefunden was mir hilft.
>>>
>>> Würde mich freuen wenn mir jemand helfen könnte das Problem zu lösen erst mal egal welchen Ansatz, Server mit Mariadb oder lokal mit Sqlite
>>>
>>> mfg
>>>
>>> Sven
>>>
>>>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20220815/0238c75e/attachment-0001.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : pi-test.JPG
Dateityp    : image/jpeg
Dateigröße  : 46793 bytes
Beschreibung: nicht verfügbar
URL         : <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20220815/0238c75e/attachment-0002.jpe>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : volkszaehler-db-Quelle.JPG
Dateityp    : image/jpeg
Dateigröße  : 139528 bytes
Beschreibung: nicht verfügbar
URL         : <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20220815/0238c75e/attachment-0003.jpe>


Mehr Informationen über die Mailingliste volkszaehler-users