Wordpress Lorsque la nouvelle version de ce blog est parue en août dernier, elle recouvrait des aspects qui ne sont pas forcément visibles de prime abord. Une partie du travail réalisé concernait d’ailleurs l’installation de la dernière version de Wordpress, la plateforme de publication que j’utilise. Et cela n’a pas été une mince affaire, car celle-ci impliquait de nombreux changements, comme par exemple celui impactant la base de données.

Pour être plus précis, il s’agissait de migrer de la version 2.0.3 vers la version 2.2 de Wordpress. Et surtout de convertir la base de données existante alors encodée avec le jeu de caractères latin1 pour faire en sorte qu’elle utilise plutôt le jeu de caractères utf8, maintenant utilisé en standard par Wordpress. Ce dernier jeu est en effet plus approprié, car il supporte les spécificités de nombreuses langues (par exemple le umlaut en allemand).

La procédure suivante ne concerne que les bases de données fonctionnant avec MySQL. Il faudra donc l’adapter si vous avez opté pour un autre gestionnaire de bases de données :

  1. Passer le blog en maintenance (ou bloquer son accès d’une autre manière afin que personne ne puisse modifier les informations du blog pendant cette procédure)
  2. Effacer les commentaires marqués comme étant des spams (et éventuellement n’importe quel autre type de donnée qu’il ne serait pas pertinent de sauvegarder)
  3. Faire une sauvegarde de la base de données
  4. Exporter le contenu de la base de données (il faut remplacer nom_de_la_base par le nom de la base de données de votre blog) :
    mysqldump -u root -p --opt --add-drop-table --default-character-set=latin1 nom_de_la_base > database.latin.sql
  5. Créer un nouveau fichier qui contiendra le contenu de la nouvelle version de la base de données :
    copy database.latin.sql database.utf8.sql
  6. Remplacer toutes les occurrences dans le fichier database.utf8.sql de la chaîne de caractères latin1_german1_ci par utf8_unicode_ci
  7. Remplacer toutes les occurrences dans le fichier database.utf8.sql de la chaîne de caractères latin1 par utf8
  8. Effacer la base de données actuelle et en créer une nouvelle supportant le jeu de caractères utf8 :
    mysql -u root -p -e "DROP DATABASE IF EXISTS `nom_de_la_base`; CREATE DATABASE IF NOT EXISTS `nom_de_la_base` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
  9. Importer le nouveau contenu dans la base de données :
    mysql -u root -p nom_de_la_base < database.utf8.sql
  10. Mettre à jour les fichiers de Wordpress (c’est-à-dire télécharger sur le serveur où le blog est hébergé les fichiers de la nouvelle version)
  11. Exécuter le script de mise à niveau :
    http://www.nom_du_blog.com/wp-admin/upgrade.php
  12. Désactiver le mode maintenance du blog

A noter qu’il existe un plugin pour Wordpress qui peut se charger pour vous de cette conversion : UTF-8 Database Converter. Le site de Wordpress dispose d’ailleurs d’une page qui parle de cette problématique spécifique et propose également une procédure de migration (quoiqu’un peu plus fastidieuse). En tout état de cause, n’oubliez pas de sauvegarder et de conserver une copie du contenu original de la base de données.

A lire également

Vous pouvez continuer votre lecture sur des sujets similaires en consultant les articles suivants :

Les visiteurs qui ont vu cette page ont consulté ensuite :

A savoir

La rédaction de cet article a nécessité 1 heure et 5 minutes. Si vous le souhaitez, vous pouvez être prévenu de la parution de nouveaux articles en vous abonnant par RSS ou par email.


3 commentaires à propos de “Comment migrer Wordpress 2.0.3 vers 2.2 et convertir la base de données latin1 en utf8” :

  1. Roooh tout bête mais franchement très astucieux !!! Si j’avais réfléchi un peu plus il y a quelques temps quand j’ai du migrer un blog en ISO-8859-1 vers UTF-8, je m’en sers épargné des maux de têtes et du temps…

    Merci pour l’astuce ! :D

  2. Pas de quoi BurningHat (ces histoires d’encodage, c’est toujours compliqué).

  3. Tout pareil que BurningHat… Si seulement tu avais écrit cet article il y a 6 mois, cela m’aurait évité d’avoir a retravailler la base à la main pour convertir tous les caracteres qui étaient parti en vrille ;-)

Ajouter un commentaire

Les informations obligatoires sont indiquées par une étoile rouge *.


2 rétroliens à propos de “Comment migrer Wordpress 2.0.3 vers 2.2 et convertir la base de données latin1 en utf8” :

  1. Hot Links for 20/12/07 | Nowhere Else 2.0
    Le 20 December 2007 à 00:44
  2. Blog sur L’actualité Multimédia du Web2.0 | Mes favoris de la semaine #3
    Le 23 December 2007 à 15:57

arrête de twitter, tu vas être en retard à l'OpenCoffee :)

A Propos

Je m’appelle Stéphane Thomas et je suis Ingénieur Senior expert dans le développement d'applications web complexes. Etant également un peu Entrepreneur, j'ai tenté l'aventure de la création d'un nouveau service Internet appelé Loomiz. Je suis maintenant le cofondateur d'Hitomi Studio, un studio de développement spécialisé dans la réalisation de sites ecommerce haut de gamme pour de jolies marques.

Lire la suite…