Schritte zur Migration der Shopware 6-Datenbank von MariaDB zu MySQL?

Schritte zur Migration der Shopware 6-Datenbank von MariaDB zu MySQL?

Kürzlich musste ich für ein Projekt die Live-Datenbank von Shopware 6 importieren. Aber die Live-Datenbank war Mariadb. Ich musste einige produktbezogene Änderungen in dieser Datenbank vornehmen. Beim Importieren der Datenbank in mein lokales System, das nur MySQL als Datenbankdienst hatte, sind mehrere Probleme aufgetreten. Darauf werde ich in diesem Blogbeitrag ausführlich eingehen.

Schritt 1 – Ich habe mich bei SSH angemeldet und den Befehl mysqldump verwendet, um die Datenbank von einem Server zu exportieren, der sich in Mariadb befand.

mysqldump -u username -p -h hostname databasename > filename.sql

Schritt 2- Nachdem der Export abgeschlossen war, lud ich die exportierte SQL-Datei über ftp in mein lokales System herunter.

Schritt 3- Ich habe dann eine neue Datenbank mit dem Namen shopware_live in meinem lokalen Mysql erstellt. Dann versuchte ich, die exportierte Datenbank mit dem folgenden Befehl zu importieren.

mysql -u root shopware_live < pathtofile.sql

Dabei wurde die Fehlermeldung “Variable ‘sql_mode’ kann nicht auf den Wert von ‘NO_AUTO_CREATE_USER’ gesetzt werden” angezeigt. Um dieses Problem zu lösen, habe ich die SQL-Datei bearbeitet und die Anweisung ‘NO_AUTO_CREATE_USER’ entfernt.

Als ich dann versuchte, die Datenbank zu importieren, erhielt ich die Fehlermeldung “Ungültiger Standardwert für ‘cms_page_version_id'”. Das Problem war, dass der Standardwert für “cms_page_version_id” in einem unbekannten Format wie “���jK¾K��u,4%” war.

Schritt 1- Um dieses Problem zu lösen, ersetzte ich den Wert durch ‘???jK¾K??u,4%’.
Schritt 2: Ersetzen Sie auch den Standardwert von version_id durch denselben Wert

document_number` varchar(255) GENERATED ALWAYS AS (json_unquote(json_extract(`config`,'$.documentNumber'))) STORED

Then again, when trying to import the database I got “The value specified for generated column

document_number' in table 'document' is not allowed” error.

Dieses Problem ist hauptsächlich auf die generierten Spalten zurückzuführen.
So what I did was to replace the GENERATED keyword and the values after that with NULL
`document_number` varchar(255) NULL,

Dieses Problem trat bei den folgenden Spalten auf. Daher musste ich die oben genannten Schritte auch für diese Spalten durchführen.

In ‘order’ table -> order_date, amount_total, amount_net, position_price, tax_status, shipping_total
In ‘order_delivery_position’ table -> total_price, unit_price and quantity

In ‘order_line_item’ table -> unit_price, total_price

In ‘product_keyword_dictionary’ table -> reversed

In ‘state_machine_history’ table -> referenced_id and referenced_version_id

Fazit

Jetzt konnte ich die Datenbank ohne Fehler importieren und das Projekt in meinem lokalen Umfeld bearbeiten. Durch die systematische Behebung dieser Probleme kann der Datenbankimport abgeschlossen werden, so dass ein nahtloser Übergang von einer MariaDB-Umgebung zu einer MySQL-Einrichtung möglich ist. Auf diese Weise wird sichergestellt, dass die Shopware 6-Datenbank im lokalen MySQL-System korrekt funktioniert, so dass die Entwickler an ihren Projekten arbeiten können, ohne auf unerwartete Fehler zu stoßen. Sollten Sie bei der Ausführung von Schritten mit Shopware 6 auf Schwierigkeiten stoßen, können Sie sich gerne an die Experten von Shopware Services wenden.

Comments are closed.