Rechercher et remplacer dans MySQL

Logo MySQL

Si vous avez changé l’url d’un site – comme par exemple une migration de WordPress d’un nom de domaine à un autre – et que vous aviez fait plein de jolis liens dans votre blog d’un post à un autre, vous avez peut être envie de chercher et de remplacer les occurences de l’ancienne URL dans la base de données MySQL ?

La procédure est assez simple même si je ne sais pas comment créer une commande vérifiant toutes les tables …

En gros un exemple de code serait :

UPDATE wp_posts SET post_content = replace( post_content,'blog.gonzaguedambricourt.com','gonzague.me')

La commande va donc chercher dans la table wp_posts les occurences de blog.gonzaguedambricourt.com et les remplacer par gonzague.me

Utilisez un outil comme phpMyAdmin pour faire une recherche du terme à remplacer dans toute votre base et ensuite adaptez le code pour faire les remplacements là où cela s’impose :)

Addendum :

Je viens de mettre de côté quelques unes des requêtes SQL à exécuter dans le cas de la migration d’un blog sous WordPress d’un domaine à un autre. L’idée de ces commandes est donc de remplacer l’ancienne adresse par la nouvelle. Si le nom de domaine est similaire ( par exemple de emmanueldetaillac.fr à blog.emmanueldetaillac.fr ) exécutez ces commandes *avant* d’aller modifier quoi que ce soit sur votre nouvelle installation.

Les commandes ( à exécuter une par une – faites un backup avant ) :

UPDATE wp_posts SET post_content = replace( post_content,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr')

UPDATE wp_posts SET guid = replace( guid,'blog.blog.emmanueldetaillac.fr','blog.emmanueldetaillac.fr')

UPDATE wp_postmeta SET meta_value = replace( meta_value,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr')

UPDATE wp_options SET option_value = replace( option_value,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr');

UPDATE wp_comments SET comment_author_url = replace( comment_author_url,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr');

UPDATE wp_comments SET comment_author_url = replace( comment_author_url,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr');

UPDATE wp_comments SET comment_content = replace( comment_content,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr');

Grâce à cet ensemble de requêtes, vous allez mettre à jour les liens dans vos posts, les adresses des fichiers (images etc), votre url dans vos commentaires, etc.

Tags: