Shop Testdaten löschen nicht möglich

Hallo,

nach Anleitung:

vorgegangen
Mit keys auf 0 setzen ging manches.
Nur Tabelle Order lässt sich nicht löschen
Cannot delete or update a parent row: a foreign key constraint fails (xxx_shopware6.document, CONSTRAINT fk.document.order_id FOREIGN KEY (order_id, order_version_id) REFERENCES order (id, version_id) ON DELETE RESTRICT ON UPDATE CASCADE)

wem sagt das was und was kann man degegen machen?
danke für eine Antwort

Hi @nurich-1 ,

ich bin mir nicht ganz sicher was du meinst mit „keys auf 0 setzen ging manches“.
Du musst die Fremdschlüssel-Überprüfung deaktivieren und am Ende wenn du durch bist wieder aktivieren - dann sollte das normalerweise auch funktionieren.

SET FOREIGN_KEY_CHECKS=0;

-- Deine Aktionen die du ausführen möchtest:
TRUNCATE `order`;
TRUNCATE `order_address`;
TRUNCATE `order_customer`;
TRUNCATE `order_delivery`;
TRUNCATE `order_delivery_position`;
TRUNCATE `order_line_item`;
TRUNCATE `order_tag`;
TRUNCATE `order_transaction`;

SET FOREIGN_KEY_CHECKS=1;

Viele Grüße
Marco Schäfer
–Webentwicklung Schäfer

In der Tabelle document sind erstellte Dokumente gespeichert, bspw. Rechnungen. Die Tabelle ist in den SQL Queries nicht mit erfasst.

document ebenfalls zu leeren ist so eine Sache. Die Dokumente auf der HDD verschwinden dadurch nicht. Du müsstest entweder damit Leben, die Dokumente manuell löschen oder ein Plugin dafür schreiben.

Ob document weiter verbunden ist mit anderen Tabellen habe ich nicht nachgesehen.

Ich habe den Fehler eben weitergegeben. Eventuell wird die Dokumentation angepasst. Wie gesagt, Dokumente sauber zu löschen ist nicht trivial.

Jetzt ist zwar alles gelöscht aber Migration läuft nun nicht mehr :frowning:
An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (xxx_shopware6.product_cross_selling, CONSTRAINT fk.product_cross_selling.product_id FOREIGN KEY (product_id, product_version_id) REFERENCES product (id, version_id) ON DELE)

Schau mal hier:


könnt ihr bei euch mal schauen wieviele Einträge ihr dort habt?
Ich glaube mir fehlen Keys.
Tabelle order_customer

Ohne Shopware-Version … wird das vermutlich nix.

Die letzte 6.7.0.1
wahrscheinlich fehlen noch an anderen Stellen auch die Keys
Gibt es da wie in SW5 auch ein Script für?

Ist, wie es sein soll. Am besten installierst du dir Shopware lokal, dann kannst du selbst vergleichen.

Nur mal so am Rande: Du hättest schon im Eingangspost erwähnen sollen, dass deine Testdaten eine Migration sind. Die Migartion legt auch noch ein Mapping (mit Prüfsummen) an. Wenn muss fast alles gelöscht werden bzw. Shop neu aufsetzen und Migration neu starten. Einfach so irgwendwelche Inhalte von Tabellen löschen kann bei einer Migration schmerzhafte Folgen haben.

Shopware schreibt in ihrer Doku:
" Folgende SQL-Queries kannst Du anwenden, bevor Du mit Deinem Shop Live gehst. Beachte jedoch, dass Du diese nie in Deinem Live-Shop anwendest. Bestellungen mit Belegen bzw. Belege dürfen nicht gelöscht werden."

Da steht es drin das es so gemacht werden kann.

Die Doku bezieht sich auf die CE, ohne Verwendung des Migration-Plugin.

Migration erneut auszuführen ist hier beschrieben: Shopware 6 - Tutorials & FAQs - Hinweise für die Migration

In der jetzigen Situation wird’s schwer. Eventuell könnte es helfen das Migration Plugin mit allen Datenbankeinträgen zu löschen und die Migration dann erneut durchlaufen zu lassen. Kann aber auch schief gehen. Am besten ein Backup erstellen und testen und ggf. Backup erneut einspielen.

Das ist richtig, nur bezieht sich dieser Punkt nicht auf eine Migration. Während der Migration irgendwelche Inhalte löschen ist eine ungünstige Idee. Wenn dann Migration beenden bzw. abschließen, Daten löschen und dann Migration neu beginnen.

Ich persönlich würde so aber nicht verfahren, das könnte zu einer unsauberen Datenbank führen. Entwerder ein Backup (vor der Migration) einspielen oder ganz neu aufsetzen.