De Wordpress à Dotclear, retour sur une migration réussie

La version 2.13 de Dotclear est sortie il y a 2 semaines. Cela fera deux ans dans quelques mois que j'utilise Dotclear et je me dit qu'il serait enfin temps de sortir de dessous le tapis les notes que j'ai écrites en effectuant la migration de mon ancien blog en Wordpress vers Dotclear.

Même si ces notes ne sont plus de toute première fraîcheur, elles pourront peut-être aider des personnes qui souhaitant migrer vers ce CMS que j'utilise avec bien plus de plaisir que le précédent. Au départ je pensais les publier dans la foulée puis je me suis rendue compte que certains choix faits ne conviendraient pas à toutes les situations, notamment celui fait pour la gestion des images. Après avoir tourné mes notes dans tous les sens sans trouver comment les rendre plus généralistes sans refaire tout un tas de tests, elles ont malheureusement fini dans le tas de "choses à faire plus tard".
 

Avertissement :

Comme expliqué précédemment, les choix que j'ai fait répondent à un contexte particulier. Si votre contexte est différent, il n'est peut-être pas pertinent de faire les mêmes choix ; il faudra adapter à votre cas, ne pas suivre mes notes aveuglément.

Changer le CMS d'un blog déjà en production demande de prendre du temps :

  • du temps pour se documenter et réfléchir à plusieurs solutions possibles,
  • du temps pour faire des tests de migration et vérifier quelle est la meilleure façon de migrer,
  • du temps pour apprendre à faire ce qu'on ne sait ou trouver une solution alternative,
  • du temps pour faire, tout simplement.

Le plus difficile est probablement de choisir un CMS. Il en existe beaucoup et tous ont des qualités et des défauts. Certains proposent des outils d'aide à la migration, d'autres non.

Concernant Dotclear, il existe un plugin qui permet d'importer les données d'une base Wordpress directement dans la base de données de Dotclear. Je l'ai utilisé avec succès. Je ne sais pas si ce plugin est toujours compatible avec les versions actuelles des deux CMS, à vous de tester

Je recommande vivement de faire les premiers tests sur un serveur local (ou sur un sous domaine de votre serveur habituel). Cela permet de voir ce qui fonctionne, ce qui ne fonctionne pas, sans rien casser.

Perso j'ai fait mes premiers essais sur un serveur local pour définir la bonne procédure pour changer de cms. Lorsque cette procédure a été finalisée, j'ai l'ai testée pour la vérifier, être sûre qu'aucun grain de sable ne vienne se glisser dans l'engrenage, puis je suis passé aux chose sérieuses : migrer le blog pour de vrai !

 

Mes notes de migration Wordpress -> Dotclear :

:! Wordpress était alors en version 4.5 et  Dotclear en version 2.9.1.

Installer Dotclear à côté de mon Wordpress.

J'ai fait l'installation en mode classique, dans un dossier différent de celui de Wp afin de conserver le blog courant en ligne le temps de réaliser la migration. Il y a d'autres façons de procéder, à vous de déterminer quelle est la meilleure pour vous.

La documentation pour installer Dotclear est ici : https://fr.dotclear.org/documentation/2.0/admin/install.

Depuis l'interface d'administration -> Gestion des plugins, chercher et installer le plugin Wordpress2Dotclear qui va servir à importer la base de données WP dans celle de Dotclear et le plugin PrivateMode qui permettra protéger l'accès au blog avec un mot de passe pour que seules les personnes autorisées puissent voir le chantier en cours mais aussi éviter son indexation par les moteurs de recherche. Activer et paramétrer PrivateMode.

Préparer la bdd Wordpress.

Pour que Dotclear puisse importer les données correctement.

:! Il est prudent et fortement recommandé de faire une sauvegarde avant toute intervention sur la base de données. Si l’hébergement le permet, on peut aussi créer une nouvelle base de données et y importer un export de celle de Wordpress, ce qui permet de travailler sans risque puisque cette nouvelle base n’est pas reliée au Wordpress en production.

- Les articles en statut brouillon sur Wordpress m'avaient généré une erreur à l'import dans Dotclear. Il est donc nécessaire de les supprimer ou de les publier, soit via l'administration des articles WP, soit en le faisant directement dans la base de données (chercher et supprimer les lignes dont le post statut est draft dans la table wp_post).
On peut faire auparavant une copie (un simple copié/collé) des brouillons sur son ordinateur, ainsi il sera facile de les recopier dans le nouveau blog sous Dotclear.

- Par défaut Wordpress enregistre différentes versions des articles pour offrir la possibilité de restaurer une version plus ancienne de l’article.
Il faut supprimer toutes ces révisions sans quoi les articles seront importés dans Dotclear en autant d'exemplaires que de révisions … autant faire le ménage avant.

La requête pour supprimer toutes les révisions via l'interface de PhpMyAdmin (source) :

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';

 

Importer les articles WP dans Dotclear :

Se connecter à l'administration de Dotclear puis aller dans Plugins -> import/export -> Importation Wordpress et renseigner les informations demandées (on peut les trouver dans le fichier wp-config de Wordpress).

Régler les détails de l'import concernant les catégories et les tags selon le besoin :

Par défaut, la première catégorie de WordPress est "Uncategorized", et chaque billet est dedans. Dans Dotclear, les catégories sont facultatives, c'est pourquoi l'importateur propose une option pour ignorer la première catégorie de WordPress.

Par sa conception, Dotclear n'autorise qu'une catégorie par billet, alors que WordPress n'offre pas de limite. Les options "Importer les catégories comme des tags :" et "Préfixer ces tags avec : " permettent de compenser ça en migrant les catégories vers les tags.

Valider et attendre que l'importation se fasse. Ça peut prendre du temps si il y a beaucoup d’articles.

Notes personnelles :

  • Dans mon cas l'importation des tags n'a pas été parfaite ; j'ai du supprimer le préfixe cat pour que certains de mes tags soient importés mais il en manquait encore beaucoup et je les ai donc recréés à la main. Aussi certains articles n'étaient plus liés au bons tags. Peut-être qu'un réglage m'a échappé ou que quelque chose s'est mal passé à l'import.
  • Au niveau de la mise en forme des articles, j'ai également eu quelques corrections à faire : des sauts de lignes et des caractères comme le e dans l'o ont disparu. Rien de bien méchant mais il est préférable de vérifier les articles et les éditer pour les corriger si besoin avant de mettre le blog en ligne, c'est d'ailleurs cette étape de vérification/correction qui m'a demandé le plus de temps, j'avais à l'époque environ 300 articles.

 

Gestion des images :

Ici j'ai choisi la solution 3. Mes images n'étaient plus indexées par les moteurs de recherche suite à l'ajout d'un bout de code un peu trop strict pour empêcher le hotlinking, du coup la solution 3 était parfaite pour mon cas. je vous donne quand même les deux autres solutions que j'avais notées car elles peuvent être meilleures dans un autre contexte.

 

Solution 1 : conserver le dossier des images de Wordpress pour tous les articles importés. Cela implique de conserver l'accès au dossier Wordpress et ses sous-dossiers contenants les images. Inconvénient : les images ne seront pas accessibles depuis la médiathèque.

 

Solution 2 : les images seront accessibles depuis la médiathèque. Voir les explications détaillées ici : https://open-time.net/post/2011/08/05/Path-et-URL-sont-dans-un-bateau-nomme-Dotclear.

 

Solution 3 : importer les images dans le dossier public de Dotclear. Inconvénient : le chemin des images va changer, le référencement déjà acquis pour ces images sera perdu (sauf à mettre en place des redirections permanentes).

Copier le contenu de wp-content/upload dans le dossier /public de Dotclear.

Nota : les dossiers images de Wordpress contiennent différentes tailles de chaque image (les miniatures), voire des images plus utilisées dans le cas d’un blog un peu ancien (j'en avais un des ces paquets ... z'imaginez pas le bazar ! ). C’est l’occasion de faire du ménage et de la place, d’autant plus que Dotclear va créer ses propres miniatures.

Requête pour remplacer les anciens chemins par les nouveaux dans la base de donnée (source) :

UPDATE dc_post SET post_excerpt = replace(post_excerpt,'1*','2*');
UPDATE dc_post SET post_excerpt_xhtml = replace(post_excerpt_xhtml,'1*','2*');
UPDATE dc_post SET post_content = replace(post_content,'1*','2*');
UPDATE dc_post SET post_content_xhtml = replace(post_content_xhtml,'1*','2*');

- 1* est à remplacer par l'ancien chemin (sans le nom de l'image, juste le chemin)
- 2* est à remplacer par le nouveau chemin.

 

Après ça il ne me restait plus qu'à faire pointer mon nom de domaine sur le nouveau dossier et mettre en place dans le htaccess les redirections permanentes nécessaires pour que les anciennes urls de mes articles renvoie automatiquement vers les nouvelles afin de ne pas perdre en référencement. Et, en dernier, supprimer le dossier Wordpress, sans aucun regret.

PS : merci encore à tous ceux qui m'ont aidé sur le forum Dotclear :) Si vous envisagez de migrer, n'hésitez pas à allez y demander des conseils.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Ajouter un rétrolien

URL de rétrolien : https://www.lafilacroche.com/trackback/355