[vz-users] Datenbankportierung und neue Struktur
Michael Hartmann
hartmann-micha at web.de
Mo Dez 26 11:55:22 CET 2022
Hallo Jakob,
der Unterschied zwichen pk und copy ist klar. Nur das copy wie von mir und Sven zuvor beschrieben lediglich die ersten 1000 Datensätze ins Backup transferiert. Der "Fehler" geschieht bereits beim Sichern, wie aus der Größe der Sicherungsdatei ersichtlich.
Msqldump kann man sicherlich machen um einmalig irgendwie Daten zu transferieren. Nur:
Deinem Quote aus dem Code folgend, braucht es eine Anpassung von dbcopy?
Damit wäre ich nach Umstellung auf die neue DB-Struktur der Möglichkeit eines täglichen, inkrementellen Backups beraubt. Davon fahre ich zwei. In eine SQlite DB auf einem Share und in eine parallele SQL-DB die auf meinem NAS liegt.
Irgendwie ist das ziemlich unglücklich mit der neuen DB-Struktur ohne fortlaufende ID.
Grüße
Micha
-----Ursprüngliche Nachricht-----
Von: volkszaehler-users [mailto:volkszaehler-users-bounces at demo.volkszaehler.org] Im Auftrag von Jakob Hirsch
Gesendet: Montag, 26. Dezember 2022 01:32
An: volkszaehler-users at demo.volkszaehler.org
Betreff: Re: [vz-users] Datenbankportierung und neue Struktur
On 2022-12-24 12:56, Michael Hartmann wrote:
> In CopyCommand.php line 40:
>
> Table data doesn't have a simple primary key
hm...
if (1 !== sizeof($columns)) {
naja, ein zusammengesetzter Key ist halt kein "simple primary key". also
"technically correct" (the best kind of correct!).
dbcopy kennt neben "pk" auch "copy" als Modus, damit wird der pk nicht
benutzt, sondern einfach der komplette Inhalt von A nach B kopiert (und
B vorher gelöscht). pk ist eigentlich nur nützlich, wenn man zwei
Datenbanken synchronisieren möchte, für einen reinen export reicht copy
(ist evt. sogar schneller). Das ist übrigens auch der default, wenn man
keine Sektion "tables" in der dbcopy.json hat...
Einfacher (und wahrscheinlich schneller) dürfte es aber sein, einfach
die Datenbank mit mysqldump in eine Datei zu schreiben und diese auf dem
Zielsystem wieder einzuspielen.
Also so etwa: (ungetestet)
mysqldump --opt --databases vz > vz.sql
Und dann auf dem Zielrechner:
mysql < vz.sql
Mehr Informationen über die Mailingliste volkszaehler-users