Mysqldump einspielen

Hallo zusammen,

wir versuchen gerade eine Shopware 6 Datenbank per mysql Dump zu “dumpen” und dann wieder einzuspielen.

Leider bricht der Import immer wieder beim Insert der der Tabelle  order_delivery_position ab. 

LOCK TABLES order_delivery_position WRITE;
/*!40000 ALTER TABLE order_delivery_position DISABLE KEYS */;
INSERT INTO order_delivery_position VALUES (‘рь(p(VIыкkТМVA’,‘йущjK┬╛K┘╬u,4%’,‘╪РZС╡KeжUW┐    Є┴’,‘йущjK┬╛K┘╬u,4%’,‘пt0JcРG┬ТZуяЮ>∙c’,‘йущjK┬╛K┘╬u,4%’,’{“quantity”: 1, “taxRules”: [{“taxRate”: 19, “extensions”: , “percentage”: 100}], “unitPrice”: 20, “totalPrice”: 20, “referencePrice”: null, “calculatedTaxes”: [{“tax”: 3.19, “price”: 20, “taxRate”: 19, “extensions”: }]}’,20,20,1,NULL,‘2019-07-17 10:31:48.996’,NULL);
/*!40000 ALTER TABLE order_delivery_position ENABLE KEYS */;
UNLOCK TABLES;
 

Gibt es beim mysql Dump für SW 6 was zu beachten?

Danke & Grüße Oliver

Was uns in dem Zuge noch aufgefallen ist:

In den order_ Tabellen (order_address, order_customer, order_delivery, order_delivery_position, order_line_item) sind Einträge obwohl wir im Backend keine Betsellung mehr haben. Wie kann das sein?

Hallo,

wird MariaDB oder MySQL verwendet? Wir haben zum dump und import mysql 5.7 und folgenden Commands verwendet:

mysqldump --force --single-transaction --compact --user=$username -p$password --host=$host --databases > test.sql

mysql -h $host -p$password -P $port -u $username --default-character-set=utf8mb4 -e “SET names ‘utf8mb4’; SET FOREIGN_KEY_CHECKS=0; USE `$db_original_name`; SOURCE test.sql; SET FOREIGN_KEY_CHECKS=1;”

hi Jens,

wir verwenden mysql. 

Wenn wir das mit deinem Beispiel machen bekommen wir trotzdem einen Fehler:

ERROR 3105 (HY000) at line 3303 in file: ‚shopware6early.sql‘: The value specified for generated column ‚total_price‘ in table ‚order_delivery_position‘ is not allowed.

oder

ERROR 3105 (HY000) at line 3698 in file: ‚shopware6early.sql‘: The value specified for generated column ‚reversed‘ in table ‚product_keyword_dictionary‘ is not allowed.

Wir kommen da nicht weiter, selbst mit mysql 5.7 nicht.

ERROR 3105 (HY000) at line 3695 in file: ‘test.sql’: The value specified for generated column ‘reversed’ in table ‘product_keyword_dictionary’ is not allowed.

Das ist wohl ein Bug in älteren mysql Versionen, komisch das es mit 5.7 bei uns nicht geht.

https://bugs.mysql.com/bug.php?id=79148

Ich habe auch das Problem das ich den Dump nicht mehr zurück spielen kann…

Bekomme Fehler:
ERROR 3105 (HY000) at line 2446 in file: ‘/shopware6_backup.sql’: The value specified for generated column ‘order_date’ in table ‘order’ is not allowed.

Gibt es dazu jetzt eine Lösung ?

Habe genau das gleiche Problem :

The value specified for generated column ‚order_date‘ in table ‚order‘ is not allowed.

Kann keine Datenbanken importieren! 

Das passiert nur wenn man in der zu importierenden Datenbank bereits eine Bestellung hat! 

@mibuntu schrieb:

Habe genau das gleiche Problem :

The value specified for generated column ‘order_date’ in table ‘order’ is not allowed.

Kann keine Datenbanken importieren!

Hallo zusammen.

Seid ihr hier weitergekommen? Gibt es einen Trick/Workaround? Bekomme beim Einspielen aktuell folgenden Fehler:

ERROR 3105 (HY000) at line 3320: The value specified for generated column ‚reversed‘ in table ‚product_keyword_dictionary‘ is not allowed.

bash-4.3$ mysqldump --version
mysqldump  Ver 10.15 Distrib 10.0.38-MariaDB, for debian-linux-gnu (x86_64)
mysql  Ver 15.1 Distrib 10.0.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
 

Gruß Mike

That looks like in your target DBMS can not handle the Generated/Virtual-Columns as they are specified in the dump file, which you are trying to import.

I hat that problem when running prod system with MariaDB 10.3 and trying to import a dump from that to a local development system running the setup from current development template (GitHub - shopware/development) using docker-setup shipped with it. 

I needet to switch the development system docker container to MariaDB 10.3 then the import worked.

But I did not looked yet for a good workflow for that switch, for now I changed:

development/docker-compose.yml 

    app\_mysql:  
 -    build: dev-ops/docker/containers/mysql  
 +    build: dev-ops/docker/containers/mariadb

And rebuild the lokal setup and databases using that.

1 Like

mysqldump im Zusammenspiel mit MySQL 5.7 funktioniert tatsächlich, hilft aber leider bei einfachen Dumps aus phpMyAdmin nicht weiter. Dort muss man die entsprechenden Spalten, die automatisch generiert werden, erst im Dump manuell entfernen.

@digitalhoch3 schrieb:

mysqldump im Zusammenspiel mit MySQL 5.7 funktioniert tatsächlich, hilft aber leider bei einfachen Dumps aus phpMyAdmin nicht weiter. Dort muss man die entsprechenden Spalten, die automatisch generiert werden, erst im Dump manuell entfernen.

Auch ja schön. Wenn man das mal vorher gewusst hätte. Was ein Schwachsinn dieses CMS einfach ist. 

Hab das gleiche Problem - gibts hier bereits eine Lösung?

Bei uns hats die Datenbank zerschossen und der Dump lässt sich partou nicht einspielen - vereinzelte Tabellen gehen - aber andere wieder nicht.

 

Wir erhalten diesen Fehler:

ERROR 1064 (42000) at line 28438: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'GENERATED ALWAYS AS (json_unquote(json_extract(`price`,'$.taxStatus'))) VIRTU...' at line 19

Die Quelldatenbank ist 5.7.28, die Zieldatenbank MariaDB 10.3.23.
Was kann man hier nur machen?

Ich habe einen Dump einer frischen Installation unter MariaDB gemacht und die abweichenden CREATE Befehle in meinen MySQL-Dump kopiert.
Bei mir gab es einige Abweichungen im Create-Befehl der Tabellen product_keyword_dictionary und order.

Danach hat es mit dem Import geklappt …

2 Likes
mysqldump --hex-blob --user=$username -p$password --host=$host --databases -r test.sql

Hatte auch das Problem, das Dumps über mysqldump sich nicht mehr einspielen ließen. Dumps über _ phpMyAdmin _ funktionierten aber. Es schien sich um ein Problem mit der Codierung der Binär-Felder zu handeln. Durch das Flag –hex-blob scheint es jetzt zu klappen.

1 Like

Gibt es hierzu etwas Neues? Das Flag --hex-blob wirkt bei mir nicht. Ich habe jetzt zwar keine kryptischen Zeichen mehr aber beim restore bricht er an der gleichen Stelle ab.
In der Tabelle product_keyword_dictionary gibt es ein Problem mit der Spalte reversed…

Der Export und Import mit phpmyadmin funktioniert tadellos. Was macht denn phpmyadmin anders als mysqldump?

Eigentlich ist “phpmyadmin” hier nicht geeignet. Shopware selber nimmt “Adminer” und ich arbeite mit HeidiSQL.

1 Like

Mir geht es um ein automatisches Backup per Cronjob. Das geht meines Wissens nur mit mysqldump, deswegen ja auch dieser Thread. Manuell mit phpmyadmin - ob geeignet oder nicht - funktioniert es ja. Gleichzeitig wird ein Dateibackup erstellt. Ich möchte ein zeitlich syncrones Backup von DB und Dateien.