Un premier constat sur une première tentative de migration, juste pour voir, d'un blog DotClear 1 vers un blog DotClear 2. Et bien c'est pas de tout repos. Surtout lorsqu'il y a 850 billets, 8500 commentaires, 1200 images. Tout ça avec des temps d'exécution des scripts PHP normalement limités à 30 secondes[1].
J'ai du installer une version locale de DotClear 2 sur mon Mac, à l'aide de l'application MAMP, pour arriver à faire un premier import. Il va falloir que je trouve un moyen de faire tourner une base PostgreSQL sur mon Mac, afin de refaire l'import directement dessus vu que la destination finale utilisera également le même moteur de base de données. Je pense que l'import complet à partir d'un export du même type effectué en local doit être la méthode la plus rapide et donc la plus susceptible de ne pas se heurter au timeout réglé chez mon hébergeur[2].
J'espère que le futur plugin Galerie me permettra de générer les prévisualisations des photos en 400 pixels de largeur, telles que je les utilise aujourd'hui, car DotClear ne propose que 500 pixels et c'est trop pour le layout actuel de mon thème[3].
Pour résumer, les étapes minimales identifiées à ce jour sont :
- fermeture des commentaires et trackbacks ici, puis export complet après un petit nettoyage de rigueur (spams, log, …)
- importation locale sur un DotClear utilisant une base de données PostgreSQL
- suppression de la base MySQL chez Free pour la remplacer par une base PostgreSQL[4]
- installation de DotClear 2 et importation
- croisage de doigts intensifs et inscription aux abonnés absents pour les réclamations !
Pour peaufiner il faudra ensuite :
- s'occuper des redirections pour conserver un accès aux anciennes URL des billets
- se refaire un thème à partir du thème Connections utilisé ici
- ajuster la page d'aide en fonction du nouveau moteur
- installer les pages connexes de contact et d'informations légales
- trouver un moyen de lister proprement les différents plugins et thèmes proposés ici
- faire une table des matières (éventuellement en portant le plugin idoine sous DotClear 2)
- …
Et après il faudra encore :
- récupérer les galeries et leurs commentaires, lorsque le plugin sera disponible
- porter les plugins Veni Vidi Vici et Jour J si nécessaire
- …
C'est pas gagné !
PS : Je risque de compléter ce billet au fur et à mesure de mes découvertes car il me servira probablement de check-list lors de la migration effective.
Notes
[1] Pour info, l'import à nécessité un timeout au moins égal à 120 secondes et la reconstruction du répertoire média prend au moins 5 minutes, je n'ai pas pu aller au terme jusqu'à maintenant !
[2] Si par contre j'utilise le plugin import/export de DotClear il n'est plus besoin de conserver le même type de base car le fichier généré et utilisé est un simple fichier texte.
[3] la taille inférieure, 240 pixels, est je trouve beaucoup trop petite pour être utilisée en lieu et place.
[4] J'hésite encore à utiliser le deuxième espace que j'ai chez Free et qui possède déjà une base de données PostgreSQL. Celui-ci est à l'adresse http://open.time.free.fr/dotclear/ et je préfèrerai conserver http://franck.paul.free.fr/dotclear/ comme actuellement (notez que de toute façon je conserverai la mention dotclear dans l'URL).
1 De Adrian -
De toute façon dotclear2 sous free ce n'est pas tout à fait ça... Je l'ai installé pour un cousin et le temps d'accès aux pages est excessivement long. Je soupçonne que leurs serveurs ne sont pas tout à fait à la hauteur à mon avis... Rien ne vaut un bon hébergement plus "pro".
2 De Douja -
Bon courage pour cette migration ! Je croise les doigts pour que tout fonctionne comme tu le souhaites. 850 billets ! Cela en fait des mots à faire voyager ;-)
3 De albaran -
il faudra aussi vérifier si l'export de Dotclear 2 fonctionne enfin chez Free.fr ; sinon il faudra prévoir une procédure spécifique de sauvegarde.
4 De albaran -
autre remarque : en utilisant le fichier export texte, on ne récupère que les billets, commentaires, catégories, utilisateurs, liens. Plus les tags en utilisant le plugin flatexport de pep.
Est-ce que le passage de base de données à base de données permet de faire mieux ?
5 De Franck -
Adrian, c'est une installation avec PostgreSQL ? Je suis allé faire un tour sur le site, et il a l'air aussi réactif que le mien, en tout cas aujourd'hui. Ceci dit, c'est du mutualisé, donc …
Douja, pour l'instant ce n'est qu'un débroussaillage, pas une migration définitive. Certains choix ne sont pas encore faits, des tests sont encore nécessaires et des développements pas encore finis. Je ne doute pas d'y arriver mais je veux pouvoir l'expliquer simplement à tous dans les semaines qui viennent.
6 De Franck -
albaran, le passage de base à base, en utilisant phpMyAdmin et son pendant pour PostgreSQL (phpPgAdmin) permet bien sûr de prendre en compte toutes les tables. Maintenant il faut que je regarde si justement il n'y en a pas qu'il faut ignorer ou traiter de manière particulière, au risque de pertuber l'installation initiale.
7 De Céd' -
En ce qui concerne l'hébergement, je me suis crée un compte chez goldzoneweb.info, un hébergeur gratuit, membre du RHIEN, et j'en suis extrêmement content.
Pour l'adaptation de ton thème, tu peux toujours me contacter en cas de problème, je commence à bien comprendre le système de template de DotClear2.
8 De Franck -
Merci pour les infos Céd'. Pour le thème, pas de soucis, je m'en occuperai moi-même le moment venu, voire même un tout nouveau histoire de me faire la main avant. Ca va viendre.
9 De obni -
Merci Franck pour ce billet… J'hésite à franchir le pas… vers DC2… Je me demande vraiment si ça vaut le coup par rapport à DC1. Je sais qu'il y a des inconditionnels… mais bon, DC1 fonctionne parfaitement bien…
ça s'installe comment PostgreSQL ?
10 De Franck -
Oui DC1 fonctionne très bien, c'est pour ça que je ne me presse pas pour migrer. Quand à installer PostgresSQL sur MacOSX, je suis en train de regarder ça de près, j'en ferai certainement un billet pour expliquer comment l'utiliser ensuite avec un DotClear installé localement.
11 De Tomtom -
D'autant plus que tout les plugins que tu utilise ne sont pas porté (encore) sur DC2 non?
12 De Franck -
Non aucun des plugins n'est pour l'instant porté. Je commencerai certainement par le plugin Table des matières et je verrai ensuite s'il y a une demande pour les autres (Veni Vidi Vici et Jour J, les autres ne servent pas ou plus pour DC2).
13 De albaran -
Pour le pb de timeout de 30s chez Free.fr :
il est possible d'importer à partir du fichier texte de flatexport avec une procédure d'import comportant point de contrôle (tous les 20 billets par exemple) puis reprise manuelle.
La procédure doit aussi traiter les doublons (si le même billet a déjà été importé, on le met à jour, pas de création d'un billet dupliqué).
14 De Franck -
Je pense qu'on peut augmenter largement la limite des 20 billets, jusqu'à 100 voire même plus.
15 De albaran -
Les 20 billets sont pour la prise de chaque point de contrôle. Suite à l'arrêt de l'importation au bout de 30s (effectivement de 60 à 100 billets suivant la charge du serveur de base de données) on effectue une reprise manuelle qui repart au dernier point de contrôle.
16 De Franck -
Ok je n'avais pas saisi la nuance !
17 De Adrian -
Oui c'est une install avec postgreesql; mais régulièrement des erreurs 500 dans l'admin, et des temps d'accès très long; mais pas tout le temps. Enfin c'est une expérience perso...