Es wird empfohlen, diese Statements nur mit den nötigen Vorkenntnissen auszuführen.
Die hier zur Verfügung gestellten Informationen wurden zum Zeitpunkt der Veröffentlichung dieses Artikels getestet, können sich zwischenzeitlich aber geändert haben. Die Durchführung dieses Tutorials geschieht auf eigene Gefahr!
Lege Dir vor der Durchführung ein Backup an, sodass Du dieses im Zweifel zurückspielen kannst. Beachte, dass es sich hier um Anpassungen von Shopware handelt und der Inhalt dieses Tutorials daher nicht offiziell supportet wird!
Mit der folgenden Query kannst Du alle angelegten Produkte löschen und die Produkt-Übersicht somit komplett leeren:
DELETE FROM product;
Mit der folgenden Query kannst Du alle Eigenschaften entfernen:
DELETE FROM property_group;
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.
Mit dem folgenden Query kannst Du alle Kundendaten entfernen.
DELETE FROM customer;
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.
Mit der folgenden Query kannst Du alle Bestellungen entfernen.
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`;
Nach einer Migration ist in allen Variantenprodukten die Vererbung deaktiviert. Um die Vererbung zu aktivieren, muss lediglich die jeweilige Eigenschaft NULL als Wert in der Datenbank besitzen.
Mit folgender Query werden alle Eigenschaften und zusätzlich auch die Vererbung für die Eigenschaften aktiviert:
UPDATE product SET
active = NULL,
tax_id = NULL,
product_manufacturer_id = NULL,
delivery_time_id = NULL,
deliveryTime = NULL,
product_media_id = NULL,
manufacturer_number = NULL,
ean = NULL,
restock_time = NULL,
is_closeout = NULL,
purchase_steps = NULL,
max_purchase = NULL,
min_purchase = NULL,
purchase_unit = NULL,
reference_unit = NULL,
shipping_free = NULL,
mark_as_topseller = NULL,
weight = NULL,
width = NULL,
height = NULL,
length = NULL,
release_date = NULL,
tag_ids = NULL,
tags = NULL
WHERE parent_id IS NOT NULL;
DELETE FROM product_translation WHERE product_id IN (SELECT id FROM product WHERE parent_id IS NOT NULL);
DELETE FROM product_tag WHERE product_id IN (SELECT id FROM product WHERE parent_id IS NOT NULL);
DELETE FROM product_media WHERE product_id IN (SELECT id FROM product WHERE parent_id IS NOT NULL);
DELETE FROM product_visibility WHERE product_id IN (SELECT id FROM product WHERE parent_id IS NOT NULL);
DELETE FROM product_property WHERE product_id IN (SELECT id FROM product WHERE parent_id IS NOT NULL);
Mit den folgenden Queries kannst Du die Erweiterungen, die nicht bereits bei der Installation von Shopware vorhanden sind, deaktivieren. Dies ist besonders für das Debuggen von Fehlern sehr hilfreich, da Du so schnell den Einfluss von Erweiterungen ausschließen kannst.
Wenn Du ein eigenes Theme verwendest, das über eine Erweiterungen eingebunden ist, solltest Du vorab sicherstellen, dass das Theme keinem Verkaufskanal zugewiesen ist. Alternativ kann es zu Problemen beim Aufruf der entsprechenden Verkaufskanälen kommen.
Zunächst legen wir eine temporäre Backup-Tabelle an. In dieser Tabelle wird der aktuelle Stand der Erweiterung gesichert.
CREATE TABLE plugin_tmp LIKE plugin;
INSERT INTO `plugin_tmp` SELECT * FROM `plugin`;
Anschließend kannst Du die Erweiterungen deaktivieren
UPDATE `plugin` SET `active`= 0 WHERE (author <> 'shopware AG' AND author <> 'Shopware') OR (author IS NULL);
Der ursprüngliche Zustand der Erweiterungen lässt sich später wieder wie folgt herzustellen
UPDATE plugin AS p JOIN plugin_tmp AS pt ON p.id = pt.id SET p.active = pt.active;
Abschließend kannst Du noch die temporäre Sicherungstabelle wieder löschen
DROP TABLE plugin_tmp;
Im Standard verwendet Showpare "utf8mb4_unicode_ci" als Kollation für die Tabellen.
Es kann jedoch vorkommen, dass die Kollation für einzelne Tabellen nicht (mehr) korrekt gesetzt ist.
Hierdurch kann es beim Vergleich von Zeichenfolgen inkompatibler Kollationen oder beim Versuch, Daten aus Spalten mit verschiedenen Kollationen auszuwählen, zu Fehlern kommen.
In den Log-Dateien ist dies an folgendem Eintrag (evtl. leicht abgewandelt) erkennbar:
SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)
Mit folgendem Query kannst Du prüfen, ob in einer Tabelle eine falsche Kollation verwendet wird.
Füge dazu den Tabellen- und Datenbanknamen in das Query an den markierten Stellen ein.
SELECT table_schema, table_name, column_name, character_set_name, collation_name
FROM information_schema.columns
WHERE (collation_name = 'utf8mb4_unicode_ci' or collation_name = 'utf8_general_ci ')
and table_name = '' --Tabellenname einsetzen
and table_schema = '' --Datenbanknamen einsetzen
ORDER BY table_schema, table_name,ordinal_position;
Das Update der Kollation ist mit einem der beiden folgenden Queries möglich.
Wir empfehlen, vor Änderungen in der Datenbank immer ein vollständiges Backup anzulegen.
Update der gesamten Datenbank
ALTER DATABASE --Datenbanknamen einsetzen CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
Update einer einzelnen Tabelle
ALTER TABLE --Tabellenname einsetzen CONVERT TO CHARACTER SET utf8mb4 COLLATE 'utf8mb4_unicode_ci';
So wird die "Standard-Kundengruppe" ohne eine Übersetzung wiederhergestellt. Die Übersetzungen müssen im Admin manuell gepflegt werden.
Query zum Wiederherstellen der Standard-Kundengruppe:
INSERT INTO `customer_group` (`id`, `display_gross`, `registration_active`, `created_at`, `updated_at`) VALUES
(UNHEX('CFBD5018D38D41D8ADCA10D94FC8BDD6'), 1, 0, '2021-01-01 00:00:00.00', NULL);