[vz-users] dbcopy

dies und das 6ecoopen at googlemail.com
Fr Aug 12 17:29:48 CEST 2022


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/20220812/fef8f0f4/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/20220812/fef8f0f4/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/20220812/fef8f0f4/attachment-0003.jpe>


Mehr Informationen über die Mailingliste volkszaehler-users