Docs

Annuler une mise à jour d'extension WordPress qui a cassé votre site

Annuler une mise à jour d'extension WordPress devient possible dès qu'un moniteur commence à échouer juste après cette mise à jour : l'exécution propose de revenir à la version précédente de l'extension, et un administrateur l'applique en un clic dans WordPress → Relvato. L'extension remet la version que vous aviez avant — depuis wordpress.org ou, pour une extension qui n'y est pas, depuis la sauvegarde compressée juste avant la mise à jour — et bloque la version qui a tout cassé, pour que WordPress ne l'installe pas simplement à nouveau. Cette page explique quand le retour en arrière est proposé, comment fonctionne le blocage et quand Relvato refuse. L'interface de Relvato est en anglais : ses libellés sont donc cités tels quels.

Quand le retour en arrière est proposé

L'exécution doit avoir échoué, et le changement qui l'a déclenchée — affiché sous « What changed » — doit être une mise à jour d'extension dont les deux versions sont connues. L'exécution affiche alors « Relvato can fix this » avec « Roll back <plugin> to <version> ». Cliquez sur « Apply in WordPress » : WordPress → Relvato s'ouvre, et un administrateur y clique sur « Apply ». L'extension réinstalle la version, et Relvato relance le moniteur.

Si plusieurs extensions ont été mises à jour en même temps, Relvato ne propose un retour en arrière que si l'erreur elle-même désigne l'une d'elles — par exemple une erreur PHP dans les fichiers de cette extension. Il ne choisit jamais au hasard entre elles.

Le blocage : pourquoi la mise à jour ne revient pas aussitôt

WordPress proposerait normalement la mise à jour de nouveau immédiatement, et une mise à jour automatique la réinstallerait en quelques heures. Le retour en arrière bloque donc aussi la version fautive. Le système de mises à jour automatiques de WordPress l'ignore, et toute mise à jour qui passe par WordPress — quelqu'un qui met l'extension à jour depuis WordPress, WP-CLI, ManageWP, l'outil de mise à jour d'un hébergeur — est refusée avec un message qui explique pourquoi.

Le blocage porte sur cette version précise. Quand l'auteur publie une version plus récente, elle s'installe normalement et Relvato la contrôle comme n'importe quelle autre mise à jour. L'écran des extensions de WordPress signale le blocage sur la ligne de l'extension, avec « Release the hold » pour le jour où vous voulez récupérer cette version — « Release the hold in WordPress », dans l'exécution, vous y mène.

Quand Relvato refuse de revenir en arrière

Une extension de wordpress.org ne revient en arrière que si votre copie correspond exactement aux fichiers de wordpress.org : une extension que quelqu'un a modifiée sur le site n'est donc jamais écrasée. Une extension qui n'est pas sur wordpress.org peut revenir en arrière si Relvato l'a sauvegardée avant la mise à jour : à partir de l'extension Relvato 1.11.0, chaque mise à jour d'une telle extension — par Relvato, par les mises à jour automatiques de WordPress ou par vous — compresse d'abord la version installée dans wp-content/relvato-backups. Le dossier est fermé au web, garde les deux sauvegardes les plus récentes par extension pendant 60 jours et ignore les extensions de plus de 80 Mo.

WooCommerce n'est pas ramené en arrière une fois que sa base de données a été mise à niveau au-delà de la version à laquelle vous reviendriez, car un code WooCommerce plus ancien sur une base de données plus récente n'est pas pris en charge. Restaurez plutôt la sauvegarde de votre hébergeur. Relvato ne revient jamais non plus sur sa propre extension.

Pourquoi le cœur de WordPress n'est pas ramené en arrière

Une mise à jour majeure de WordPress fait migrer la base de données, et WordPress n'a aucun moyen de l'annuler. Une mise à jour mineure contient surtout des correctifs de sécurité, et WordPress la réinstallerait de toute façon automatiquement en quelques heures. Quand un moniteur casse après une mise à jour du cœur, la cause est presque toujours une extension ou un thème incompatible avec la nouvelle version — c'est sur celui-là qu'il faut revenir en arrière.

Désactiver le retour en arrière pour un site

Le retour en arrière est actif sur chaque site WordPress tant que vous ne le désactivez pas. Ouvrez dans les réglages du site « Settings → 3rd party plugins » et décochez « Roll back plugin updates that break a monitor ». Relvato ne propose alors plus jamais de réinstaller une version antérieure d'une extension sur ce site. Une exécution en échec indique toujours la mise à jour qui l'a probablement causée, mais son bouton « Apply fix on my site » est désactivé et explique pourquoi.

Retour en arrière désactivé, Relvato ne propose plus non plus de mettre à jour une extension vulnérable, car cette mise à jour ne pourrait pas être annulée si un moniteur cessait de passer. Désactiver l'extension puis vérifier reste proposé, puisque l'annuler consiste seulement à la réactiver. Les versions déjà bloquées le restent. La même page de réglages les liste, chacune avec « Release in WordPress ».

FAQ

Puis-je annuler un retour en arrière ?

Levez le blocage depuis l'écran des extensions de WordPress (« Release the hold »), puis mettez l'extension à jour depuis WordPress comme d'habitude. Lever le blocage ne réinstalle rien en soi — cela permet seulement de réinstaller cette version.

Le retour en arrière fonctionne-t-il pour les extensions payantes ?

Oui, à partir de l'extension Relvato 1.11.0 : avant la mise à jour d'une extension payante ou d'éditeur, Relvato compresse la version installée, et le retour en arrière restaure cette sauvegarde. Une mise à jour antérieure à 1.11.0 n'a pas de sauvegarde — revenez en arrière depuis les téléchargements de l'éditeur ou la sauvegarde de votre hébergeur, ou désactivez l'extension : voir Mettre à jour une extension vulnérable en toute sécurité.

Et si WordPress demande des identifiants FTP pour mettre à jour les extensions sur mon site ?

Alors WordPress ne peut pas écrire les fichiers des extensions sans eux, et Relvato non plus. Le correctif vous le signale, et vous revenez en arrière depuis le panneau de contrôle de votre hébergeur.

Relvato reviendra-t-il en arrière de lui-même ?

Non. Relvato ne modifie jamais votre site de lui-même : il nomme la mise à jour et propose le retour en arrière, qu'un administrateur applique dans WordPress → Relvato. Il en va de même pour l'annulation d'une mise à jour sûre : voir Mettre à jour une extension vulnérable en toute sécurité.

À lire aussi
Docs

Sachez quelle mise à jour a tout cassé

Relvato relance vos moniteurs après chaque mise à jour d'extension, de thème et du cœur.