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 Like

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 Like