Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Stellen Sie Woocommerce-Bestellungen wieder her

Dieser Fall ist ziemlich kompliziert, denn wie Sie erraten können, haben Sie sicherlich in beiden Datenbanken (in Ihrer Backup- und aktuellen Datenbank) dieselbe Bestell-ID für verschiedene Bestellungen. Wenn eine Bestellung aufgegeben wird, werden die Datenbanktabellen "post", "postmeta" gefüllt. (und vielleicht einige zusätzliche Tabellen im Zusammenhang mit WooCommerce, die einige WooCommerce-Plugins erstellt haben).

ABRUFEN DER FEHLENDEN DATEN:
Zuerst in "post" Sicherung Tabelle müssen Sie alle "post_id" mit einer shop_order finden "post_type", beginnend mit einem bestimmten Datum:
SELECT * FROM 'posts' WHERE 'post_date' > '2016-03-15 00:00:00' AND 'post_type' LIKE 'shop_order' ORDER BY 'post_id' ASC
(Sie müssen hier das korrekte Anfangsdatum und die Uhrzeit eingeben)

Mit all diesen post_id Sie werden alle zugehörigen Daten in der "postmeta"-Tabelle abrufen:
SELECT * FROM 'postmeta' WHERE 'post_id' > 2059 ORDER BY 'meta_id' ASC
(Sie müssen post_id ersetzen "2059" von Ihrem entsprechenden echten ... )

VORBEREITUNG NEUER DATEN ZUM EINFÜGEN:
Für die Tabelle "posts" müssen Sie alle verschiedenen ID-Nummern für "post_id" verschieben, bevor Sie sie in Ihre aktuelle Datenbank einfügen, mit neuen, noch nicht vorhandenen Werten, abhängig von den IDs, die bereits von Ihrer aktuellen Datenbank verwendet werden.

Für die „postmeta“-Tabelle müssen Sie alle alten „post_id“ durch die neuen Werte ersetzen, die gerade in Ihrer „posts“-Tabelle generiert wurden.

Sie müssen Ihren Shop in den Wartungsmodus versetzen, um neue Bestellungen zu vermeiden (zum Beispiel mit diesem kostenlosen Wartungsmodus Plugin)

Sie müssen an MySQL gewöhnt sein und ich denke, es ist besser, alles in einer duplizierten Version Ihres Webshops zu testen. Erstellen Sie Backups, bevor…

Viele Grüße