Mysql
 sql >> Base de données >  >> RDS >> Mysql

Restaurer les commandes woocommerce

Ce cas est assez compliqué, car comme vous pouvez le deviner vous avez certainement dans les deux bases de données (dans vos bases de données de sauvegarde et réelles) le même ID de commandes pour différentes commandes. Lorsqu'une commande est passée elle renseigne les tables de la base de données "post", "postmeta" (et peut-être quelques tableaux supplémentaires liés au woocommerce que certains plugins wooCommerce ont créés).

RÉCUPÉRATION DES DONNÉES MANQUANTES :
Premier en "post" sauvegarde table, vous devez trouver tous les "post_id" avec un shop_order "post_type", commençant à une date précise :
SELECT * FROM 'posts' WHERE 'post_date' > '2016-03-15 00:00:00' AND 'post_type' LIKE 'shop_order' ORDER BY 'post_id' ASC
(vous devez définir la date et l'heure de début correctes ici)

Avec tous ces post_id vous allez récupérer toutes les données associées dans la table "postmeta" :
SELECT * FROM 'postmeta' WHERE 'post_id' > 2059 ORDER BY 'meta_id' ASC
(vous devez remplacer post_id "2059" par votre vrai correspondant… )

PRÉPARATION DES NOUVELLES DONNÉES À INSÉRER :
Pour la table "posts", vous devrez décaler tous les différents numéros d'identification pour "post_id", avant de les insérer dans votre base de données actuelle, avec de nouvelles valeurs non encore existantes en fonction des identifiants déjà utilisés par votre base de données actuelle.

Pour la table "postmeta", vous devrez remplacer tous les anciens "post_id" par les nouvelles valeurs que vous venez de générer dans votre table "posts".

Vous devrez mettre votre boutique en mode maintenance pour éviter de nouvelles commandes (par exemple avec ce gratuit Mode Maintenance plug-in)

Vous devez être habitué à MySQL et je pense qu'il est préférable de tout tester dans une version dupliquée de votre boutique en ligne. Effectuez des sauvegardes avant…

Cordialement