WordPress : la migration Multisite avec MU-Migration

 

MU Migration, édité par 10Up, est un plugin d’import – export de sites dédié à WordPress dans sa version multisites (WPMU).
Il fonctionne sur la base de WP-CLI (http://wp-cli.org/fr/), l’interface de commande pour WordPress qu’il prolonge en fournissant un certain nombre de commandes supplémentaires.
Ce plugin permet l’import / export de sites dans ou depuis une plateforme multisites.
Autrement dit, il est utile quand on veut intégrer un site individuel dans une structure multisites ou au contraire extraire un mini-site pour en faire un site single doté d’une base de données indépendante.

Pourquoi utiliser MU Migration plutôt que les outils classiques d’export de WordPress ?

De base, WordPress propose bien un outil d’export qui permet de transmettre les contenus d’articles (classiques ou custom posts), les pages et les médias à travers un fichier xml importable depuis le back-office d’un autre site WordPress.
Dans le meilleur des mondes, ce module devrait suffire à récupérer des contenus. Cependant, en pratique on constate certains problèmes liés à ce type d’exports : des items de menus sont dédoublés, les widgets non placés dans les sidebars, les templates non actualisés, etc… Pour compenser ces problèmes, certains plugins existent, gratuits ou pas :
• CSV and XML Import
• WordPress Awesome Import & Export Plugin
• Advanced Export for WP & WPMU
• Bulk Import/Export WordPress Plugin
• WordPress Customizer Export/Import Plugin
• All-in-One WP Migration

En mettant tous ces plugins bout-a-bout, on peut en effet obtenir des imports quasi-complets.
Toutefois, utiliser plusieurs plugins est fastidieux.
De plus, si on souhaite importer les contenus d’un site WordPress dans un mini-site au sein d’une plateforme, il faut que le minisite ait déjà été déclaré au niveau du back-office, ce qui constitue encore une étape supplémentaire.
Par rapport à toutes ces solutions et dans le cas d’imports/exports avec une plateforme, l’intérêt de Mu-Migration est qu’il fournit une solution tout en un.
Mu Migration ne se contente pas d’exporter les contenus dynamiques (articles, pages, etc…) dans un fichier XML : il permet de récupérer l’export de la base de données en même temps que les fichiers (médias, thèmes, plugins actifs) dans un zip dont le contenu sera replacé intégralement au moyen d’une simple ligne de commande dans un environnement multisites.
Bien que certains réglages restent à valider dans le back-office (widgets dans les sidebars et régler certains plugins lorsque ceux-ci ne sont pas complètement standard) le gain de temps est bien réel.

Mu Migration en pratique.
Installer WP-CLI (wp-cli.phar à placer quelque part sur le serveur. Par défaut, vous pouvez le placer à la racine du site mais ne pas oublier de le supprimer de la version de prod).
En utilisant wget ou curl :
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Installer MU-Migration dans le site à exporter et/ou dans la plateforme Multisites.
Dépôt Git et doc : https://github.com/10up/MU-Migration

En ligne de commandes (recommandé) téléchargez et installez le plugin depuis le repository
wp package install 10up/mu-migration

En cas de problème avec la commande (dans Windows par exemple) :
Installez le dossier à télécharger depuis le dépôt directement dans le dossier des plugins (wp-content/plugins/) du site, et lancez la commande
composer install
Exportez un site individuel pour l’intégrer à une plate-forme en site individuel
Côté site à exporter, lancez la commande suivante depuis ma racine (sans quoi le jeu de commandes ‘wp’ ne sera pas reconnu).
$ wp mu-migration export all site.zip --plugins --themes --uploads

Les options en ‘--‘ permettent de définir le périmètre de l’export.

Un joli zip se trouve désormais à la racine du site à exporter. Dans cette archive se trouvent les sous-répertoires utiles de wp-content) et des exports de données en json, xml et sql.
Autre cas d’export :
depuis une plateforme multisites, on souhaite extraire un minisite en particulier (identifié par son id – lequel est visible dans l’admin du réseau – rubrique sites).
$ wp mu-migration export all subsite.zip --blog_id=2

Importez dans une plateforme les contenus et la structure d’une site individuel.
Placez le zip dans le dossier racine du site d’accueil.
$ wp mu-migration import all site.zip

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *