Fehlermeldung Datenbank einspielen aus Datensicherung

Hallo zusammen,
ich wollte gerade eine Datensicherung einspielen und bekomme folgende Fehlermeldung:
Function or expression 'variant_listing_config' cannot be used in the CHECK clause of variant_listing_config``

Der Fehler tritt an der Stelle auf:

  `variant_listing_config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin GENERATED ALWAYS AS (case when `display_parent` is not null or `main_variant_id` is not null or `configurator_group_config` is not null then json_object('displayParent',`display_parent`,'mainVariantId',lcase(hex(`main_variant_id`)),'configuratorGroupConfig',json_extract(`configurator_group_config`,'$')) end) VIRTUAL CHECK (json_valid(`variant_listing_config`)),

Der Shop ist auf all-inkl.com, dort laufen die Datenbanken mit mariadb.
Kann ich die Bedingung zum Einspielen weglassen und nachträglich einfügen?

Ich habe hier das gleiche Problem in der Version 6.4.19.0

Es scheint so als ob du das

CHECK (json_valid(`variant_listing_config`))

am Ende einfach weglassen kannst. Danach solltest du den Dump wieder einspielen können.
Die Zeile sollte dann so aussehen:

`variant_listing_config` longtext CHARACTER SET utf8mb4 GENERATED ALWAYS AS (case when `display_parent` is not null or `main_variant_id` is not null or `configurator_group_config` is not null then json_object('displayParent',`display_parent`,'mainVariantId',lcase(hex(`main_variant_id`)),'configuratorGroupConfig',json_extract(`configurator_group_config`,'$')) end) VIRTUAL,

Hallo,
ich hatte dasselbe Problem. Ich konnte es lösen indem ich die Server MariaDB Version mit der Lokalen Version angeglichen habe. Auf dem Server lief 10.6.10 Lokal 10.6. Nach dem erhöhen der lokalen Version auf 10.6.10 lief der Import wieder.

Hallo J.Jonas,

vielen Dank für Deine Nachricht. Wir haben hier gerade das selbe Problem.

Wie meinst du das mit weglassen? Wo lasse ich diese Zeile weg bzw. ändere sie?

Vielen Dank.

Schöne Grüße,
Matthias Rau

Zunächst mal noch Danke an j.jonas und falko.linke für die Info.
Ich habe bei meinem Provider einen anderen Vertrag abgeschlossen, mit der aktuellen Maria DB Version.
@rcdemr wenn du deine Datenbank zurückspielst in der Tabelle „product“ die Definition für die Spalte „variant_listing_config“ lässt du dan den Bereich

GENERATED ALWAYS AS (case when display_parent is not null or main_variant_id is not null or configurator_group_config is not null then json_object(‚displayParent‘,display_parent,‚mainVariantId‘,lcase(hex(main_variant_id)),‚configuratorGroupConfig‘,json_extract(configurator_group_config)) end) VIRTUAL

weg.
Dann sollte es klappen.
Gruß Jürgen

1 „Gefällt mir“

Hallo Matthias,

in deinem Dump findest du irgendwo die Stelle, an der die product Tabelle erstellt wird. Die Stelle fängt mit „CREATE TABLE product (“ an. Dort wird die Spalte „variant_listing_config“ definiert. Bei mir steht dort:

  `variant_listing_config` longtext CHARACTER SET utf8mb4 GENERATED ALWAYS AS (case when `display_parent` is not null or `main_variant_id` is not null or `configurator_group_config` is not null then json_object('displayParent',`display_parent`,'mainVariantId',lcase(hex(`main_variant_id`)),'configuratorGroupConfig',json_extract(`configurator_group_config`,'$')) end) VIRTUAL CHECK (json_valid(`variant_listing_config`)),

und das " CHECK (json_valid(variant_listing_config))" am Ende macht Probleme. Das kann aber auch einfach weg, so dass die Zeile dann so aussieht:

`variant_listing_config` longtext CHARACTER SET utf8mb4 GENERATED ALWAYS AS (case when `display_parent` is not null or `main_variant_id` is not null or `configurator_group_config` is not null then json_object('displayParent',`display_parent`,'mainVariantId',lcase(hex(`main_variant_id`)),'configuratorGroupConfig',json_extract(`configurator_group_config`,'$')) end) VIRTUAL,

Ich habe dafür den Dump in notepad++ geöffnet und es dort bearbeitet, geht aber auch mit jedem anderen Text-Programm.

Viele Grüße,
Jens

In der Version 6.5 gibt es eine Migration die das Problem für bestehende Installationen korrigiert:

Diese kann auch für die 6.4 genommen werden

hallo ich weiß, das ist schon etwas älter, aber wir haben heute die gleiche Fehlermeldung erhalten beim UpGrade aus dem Backend von SW 6.4.12 → 6.4.20. Wir haben auch Maria DB 10.11.7 (lt. phpmy admin)

CHECK (json_valid(`variant_listing_config`))

könnte vmtl. die Lösung sein, nur frage mich an welcher Stelle ich da eingreifen kann, ich habe ja keinen dump. Der Backend UpDater läuft ja einfach bis zu besagter Fehlermeldung durch.

Habe das gleiche Problem, bei einer Installation von 6.4.20. Maria DB 10.5.23 ist installiert. Konntest du es lösen? Bzw. wie kann ich den Teil, der für den Fehler sorgt, weglassen, wenn ich einfach nur Shopware 6.4.20 installieren will?

hallo Adelbert, gelöst ist es mittlerweile, aber nicht so wie man annehmen könnte. Wir sind auf Maria DB 10.11 bei einem anderen Provider gewechselt, da kamen dann aber auch wieder ganz andere Fehlermeldungen. Einfach nur wirr dieses 6.4.20 Upgrade.
Wir sind dann direkt auf SW 6.5.8.5 gegangen, mit dem .phar Installer. Vorher alle PlugIns, deaktviveren und aufpassen dass php 8.1 läuft, bei 8.3 ging es nämlich nicht. Obwohl sich ein neuer Shop schon mit php 8.3 installieren läßt.
Noch Fragen !?

Hatte das Problem beim Update von einer 6.4.18.x auf 6.4.20.x.

Der Workaround, der in der DB-Migration in neuen 6.5.x Versionen enthalten ist kann auch händisch per SQL z.B. im phpMyAdmin ausgeführt werden. Danach läuft das durch, da in der Problem Migration, geprüft wird, ob das Feld schon da ist und falls, ja wird das SQL Statement nicht ausgeführt.

Die Steps sind hier gut aufgeführt:

1 „Gefällt mir“