Mettre à jour la base de données WooCommerce avec WP-CLI

Après une mise à jour de WooCommerce, WordPress peut afficher un message du type : WooCommerce database update required. En français : WooCommerce a été mis à jour, mais sa base de données doit encore suivre le mouvement.

Dans l’administration WordPress, WooCommerce propose un bouton pour lancer cette mise à jour. Mais sur une boutique active, un gros catalogue, ou un serveur où les requêtes web peuvent expirer, WP-CLI est souvent plus propre. Le terminal n’a pas peur des gros paniers. Lui.

Kinsta: Premium Managed WordPress hosting

Ce que fait la mise à jour de la base WooCommerce

WooCommerce stocke ses données dans la base WordPress : produits, commandes, clients, réglages, taxes, coupons, attributs, journaux, lookup tables, webhooks et métadonnées diverses.

Quand une nouvelle version de WooCommerce introduit une modification de structure ou de données, le plugin peut devoir exécuter une mise à jour de base. Cette opération adapte les données existantes à la version installée.

Concrètement, cela peut mettre à jour des options, créer ou modifier des tables, régénérer certaines données, ou planifier des tâches d’arrière-plan via Action Scheduler.

La commande WP-CLI à utiliser

Depuis la racine du site WordPress, lancez :

wp wc update

Cette commande exécute les mises à jour de base WooCommerce en attente. Si aucune mise à jour n’est nécessaire, WooCommerce vous l’indiquera simplement.

Si vous n’êtes pas dans le dossier du site, utilisez --path :

wp --path=/home/example/public_html wc updateLangage du code : JavaScript (javascript)

Sur un multisite, ciblez le bon site avec --url :

wp --url=https://boutique.example.com wc updateLangage du code : JavaScript (javascript)
Distingo, le livret à 2%

Avant de lancer la commande : faites une sauvegarde

Une mise à jour de base WooCommerce modifie des données critiques. Donc, avant de lancer quoi que ce soit, sauvegardez la base.

wp db export "backup-before-woocommerce-db-update-$(date +%F-%H%M%S).sql"Langage du code : JavaScript (javascript)

Vous pouvez vérifier que le fichier existe :

ls -lh backup-before-woocommerce-db-update-*.sqlLangage du code : CSS (css)

Sur une vraie boutique, je recommande aussi une sauvegarde fichiers + base via l’hébergeur ou votre outil de backup. Une sauvegarde SQL locale est utile, mais elle ne remplace pas un point de restauration complet.

Pour une approche serveur plus complète, vous pouvez aussi relire l’article sur les sauvegardes de fichiers et bases de données avec cron.

Procédure recommandée sur une boutique WooCommerce

Sur une boutique de production, ne lancez pas la mise à jour entre deux commandes clients, les yeux fermés, un vendredi soir. Même WooCommerce mérite mieux.

Voici une procédure plus propre :

  • créer ou rafraîchir un staging ;
  • mettre à jour WordPress si nécessaire ;
  • mettre à jour WooCommerce ;
  • mettre à jour les extensions WooCommerce critiques ;
  • lancer la mise à jour de base avec WP-CLI ;
  • contrôler les tâches Action Scheduler ;
  • purger les caches ;
  • tester le tunnel d’achat ;
  • reproduire ensuite la procédure en production.

Si vous avez besoin d’un environnement de test propre, consultez aussi le guide pour créer un site staging WordPress sur un sous-domaine.

Kinsta: Premium Managed WordPress hosting

Vérifier les versions avant mise à jour

Avant de toucher à la base, vérifiez l’état du site :

wp core version
wp plugin list --status=active
wp plugin list --update=availableLangage du code : PHP (php)

Pour isoler WooCommerce :

wp plugin list --name=woocommerceLangage du code : PHP (php)

Vous pouvez aussi vérifier les informations WooCommerce disponibles via la CLI :

wp wc --info

Si cette commande ne répond pas, vérifiez que WooCommerce est bien installé, actif, et que WP-CLI charge correctement WordPress.

Mettre à jour WooCommerce avant la base

La mise à jour de base doit correspondre à la version du plugin WooCommerce installée. Commencez donc par mettre à jour le plugin, idéalement sur staging :

wp plugin update woocommerce

Ensuite seulement, lancez :

wp wc update

Pour une mise à jour plus large des extensions WooCommerce, listez d’abord les plugins concernés :

wp plugin list --update=availableLangage du code : PHP (php)

Puis mettez à jour avec méthode. Sur une boutique, évitez le réflexe wp plugin update --all en production si vous n’avez pas testé le panier, le paiement, les emails et les webhooks sur staging.

Kinsta: Premium Managed WordPress hosting

Mettre temporairement la boutique en maintenance

Sur une petite boutique, l’opération peut être très rapide. Sur une boutique plus active, mieux vaut éviter que des clients passent commande pendant une migration de données.

Vous pouvez activer le mode maintenance WordPress avec WP-CLI :

wp maintenance-mode activate

Puis lancer la mise à jour :

wp wc update

Et désactiver le mode maintenance :

wp maintenance-mode deactivate

Sur une boutique très active, planifiez une vraie fenêtre de maintenance. L’objectif est simple : éviter les écritures concurrentes pendant une modification de structure ou de données.

Contrôler les tâches Action Scheduler

WooCommerce utilise Action Scheduler pour gérer de nombreuses tâches d’arrière-plan : webhooks, abonnements, emails, traitements différés, synchronisations, mises à jour internes et extensions tierces.

Après une mise à jour de base, vérifiez s’il reste des actions en attente ou échouées :

wp action-scheduler list --status=pending --per-page=20
wp action-scheduler list --status=failed --per-page=20Langage du code : PHP (php)

Si vous avez beaucoup d’actions en attente, vous pouvez lancer le runner en CLI :

wp action-scheduler run

Sur les grosses boutiques, cette étape peut être essentielle. Certaines migrations WooCommerce déclenchent des traitements différés. L’interface admin peut donner l’impression que tout est terminé, alors que la file d’attente travaille encore en arrière-plan.

Vérifier l’état de la base WordPress

La mise à jour WooCommerce ne remplace pas la mise à jour de base WordPress. Si WordPress lui-même attend une mise à jour de base, lancez :

wp core update-db

Sur un multisite :

wp core update-db --network

Ensuite, vérifiez la base :

wp db check

Si une table pose problème, corrigez-la avant d’enchaîner les mises à jour WooCommerce. Une migration de base sur une base déjà malade, c’est rarement une bonne scène.

Purger les caches après mise à jour

Après une mise à jour WooCommerce, purgez les caches applicables :

  • cache objet WordPress ;
  • cache page ;
  • cache hébergeur ;
  • cache CDN ;
  • transients WooCommerce si nécessaire.

Avec WP-CLI, commencez par :

wp cache flush

Si vous utilisez Redis, vérifiez aussi votre couche de cache objet. Vous pouvez relire le guide sur l’installation de Redis pour accélérer WordPress pour replacer cette partie dans une stack serveur complète.

Tests indispensables après mise à jour

Une mise à jour WooCommerce ne se valide pas avec un simple “le site charge”. Il faut tester les fonctions commerciales.

  • ouvrir une fiche produit ;
  • ajouter un produit au panier ;
  • modifier les quantités ;
  • passer au paiement ;
  • tester les frais de livraison ;
  • tester les taxes ;
  • vérifier les moyens de paiement ;
  • passer une commande de test si possible ;
  • vérifier les emails transactionnels ;
  • vérifier les webhooks Stripe, PayPal ou autres passerelles ;
  • contrôler les abonnements si WooCommerce Subscriptions est actif ;
  • contrôler les tâches planifiées échouées.

Pour les problèmes d’affichage côté panier, vous pouvez aussi consulter l’article sur la page panier WooCommerce responsive. Ce n’est pas le même sujet, mais c’est typiquement le genre de détail à vérifier après une mise à jour.

Commande complète pour une mise à jour prudente

Voici une séquence raisonnable sur staging :

wp db export "backup-before-woocommerce-update-$(date +%F-%H%M%S).sql"

wp plugin update woocommerce

wp wc update

wp action-scheduler list --status=pending --per-page=20
wp action-scheduler list --status=failed --per-page=20

wp cache flush

wp db checkLangage du code : PHP (php)

Sur production, ajoutez le mode maintenance si la boutique reçoit des commandes régulières :

wp maintenance-mode activate

wp db export "backup-before-woocommerce-update-$(date +%F-%H%M%S).sql"
wp plugin update woocommerce
wp wc update
wp cache flush
wp db check

wp maintenance-mode deactivateLangage du code : JavaScript (javascript)

Gardez une session SSH ouverte jusqu’à la fin des tests. Ce n’est pas obligatoire, mais c’est une bonne habitude quand on manipule une boutique en ligne.

Cas fréquent : le message de mise à jour ne disparaît pas

Il arrive que WooCommerce continue d’afficher un message de mise à jour de base après l’exécution de wp wc update. Dans ce cas, commencez par vider les caches :

wp cache flush

Ensuite, contrôlez les tâches Action Scheduler :

wp action-scheduler list --status=pending --per-page=50
wp action-scheduler list --status=failed --per-page=50Langage du code : PHP (php)

Si des actions WooCommerce restent bloquées, corrigez-les avant de relancer la mise à jour au hasard. Consultez aussi les logs WooCommerce dans WooCommerce → Statut → Journaux.

Vous pouvez également inspecter les options WooCommerce en base, mais ne les modifiez pas sans savoir exactement ce qu’elles représentent. Pour ce type d’audit, l’article sur l’identification des options de plugins dans la base WordPress complète bien ce guide.

Et si WP-CLI demande des accès FTP ?

Si une mise à jour de plugin échoue parce que WordPress demande des identifiants FTP, le problème ne vient pas de WooCommerce. Il vient généralement des permissions fichiers, du propriétaire Unix, ou de la méthode filesystem WordPress.

Dans ce cas, corrigez d’abord l’environnement. J’ai détaillé ce cas dans l’article sur l’erreur ftp_nlist() expects parameter 1 to be resource.

Faut-il utiliser –allow-root ?

Si vous lancez WP-CLI en root, vous pouvez ajouter --allow-root. Mais sur un serveur propre, mieux vaut exécuter WP-CLI avec l’utilisateur propriétaire du site.

sudo -u exampleuser wp --path=/home/example/public_html wc updateLangage du code : JavaScript (javascript)

Évitez de créer des fichiers appartenant à root dans une installation WordPress. C’est une excellente façon de provoquer ensuite des erreurs de mise à jour, de cache, ou d’upload. Le genre de cadeau que personne n’a demandé.

Checklist rapide

  • Tester d’abord sur staging.
  • Sauvegarder la base avec wp db export.
  • Mettre à jour WooCommerce.
  • Lancer wp wc update.
  • Contrôler Action Scheduler.
  • Vérifier les actions échouées.
  • Purger les caches.
  • Contrôler la base avec wp db check.
  • Tester produit, panier, paiement et emails.
  • Sur production, prévoir une fenêtre de maintenance si la boutique est active.

Conclusion

Pour mettre à jour la base de données WooCommerce en ligne de commande, la commande essentielle reste :

wp wc update

Mais sur une vraie boutique, cette commande ne doit pas vivre seule. Sauvegardez, testez sur staging, mettez WooCommerce à jour, lancez la migration, vérifiez Action Scheduler, purgez les caches, puis testez le tunnel d’achat.

WooCommerce peut gérer beaucoup de choses. En revanche, il ne remplacera jamais une procédure de maintenance propre. Et franchement, c’est mieux comme ça.

Sources

Demandez à l'IA son opinion

Laisser un commentaire