Da ich selbst in einige Fehler gelaufen bin, möchte ich hier eine Kurzdoku geben: Es reicht leider nicht aus einen mysqldump von MariaDB zu nehmen und dann in mysql zu importieren. Das Führt zu Fehlern.
Offenbar hat mysql ein Problem mit folgendem Part:
CREATE TABLE `document` (
`id` binary(16) NOT NULL,
`document_type_id` binary(16) NOT NULL,
`referenced_document_id` binary(16) DEFAULT NULL,
`file_type` varchar(255) NOT NULL,
`order_id` binary(16) NOT NULL,
`order_version_id` binary(16) NOT NULL,
`config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`sent` tinyint(1) NOT NULL DEFAULT 0,
`static` tinyint(1) NOT NULL DEFAULT 0,
`deep_link_code` varchar(32) NOT NULL,
`document_media_file_id` binary(16) DEFAULT NULL,
`custom_fields` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`created_at` datetime(3) NOT NULL,
`updated_at` datetime(3) DEFAULT NULL,
`document_number` varchar(255) GENERATED ALWAYS AS (json_unquote(json_extract(`config`,'$.documentNumber'))) STORED,
Die Spalte „document_number“ wird mit json generiert. Das hat zu Fehlern geführt.
Meine Lösung war folgende:
https://wissen.profihost.com/wissen/artikel/shopware-6-fehler-the-value-specified-for-generated-column-order_date-in-table-order-is-not-allowed/
Der mit der Shopware-CLI erstellte mysql-dump war weitestgehend kompatibel. Ich musste lediglich ein Datumsfeld ändern, welches auf 0000-00-00 00:00:00 stand. Bisher sind keine Fehler aufgefallen. Ich hoffe das bleibt auch so!
Lustigerweise hat sich der create table Befehl von oben im neuen dump nicht geändert, wird aber jetzt von mysql akzeptiert. offenbar passiert vorher noch etwas magic was beim dump mit mysqldump nicht passiert.