Migrer la base de données d’un site WordPress

Contexte

Si vous faites du développement de site sous WordPress, vous aurez certainement besoin de migrer votre base de données d'un environnement à un autre (dev -> recette -> prod, nouveau domaine etc.). Attention, certaines URL sont enregistrées "en dur" dans la base de données, ainsi l'ancien nom de domaine apparaitra dans les liens. Il est donc nécessaire de remplacer les anciennes URL par les nouvelles. Plusieurs solutions sont envisageables, nous allons les détailler ci-dessous.

Exécuter des requêtes sur la base après migration

Une fois votre base de données installée sur le nouvel environnement, connectez-vous à celle-ci et exécutez les requêtes suivantes :

# Changer l'URL du site
UPDATE wp_options
SET option_value = replace(option_value, 'http://www.ancien-site.com', 'http://www.nouveau-site.com')
WHERE option_name = 'home'
OR option_name = 'siteurl'; 
# Changer l'URL des GUID
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.ancien-site.fr', 'http://www.nouveau-site.fr'); 
# Changer l'URL des médias dans les articles et pages
UPDATE wp_posts
SET post_content = REPLACE (post_content, 'http://www.ancien-site.fr', 'http://www.nouveau-site.fr');
# Changer l'URL des données meta
UPDATE wp_postmeta
SET meta_value = REPLACE (meta_value, 'http://www.ancien-site.com','http://www.nouveau-site.com');

Attention, certains plugins ajoutent des tables, il faudra également effectuer des requêtes sur celles-ci. En fonction de votre configuration, il sera peut être nécessaire de modifier le suffixe ("wp_") de la base de données dans la requête.

Utiliser un plugin

Si vous n'êtes pas à l'aise avec les requêtes SQL, vous pouvez installer un plugin vous permettant de modifier les URL en quelques clics. En voici une liste : https://premium.wpmudev.org/blog/8-plugins-for-safely-moving-wordpress/.

Remplacer les occurences à la main dans le fichier ".sql"

Il s'agit ici de ma méthode préférée car elle remplace toutes les URL sans exception en un temps record. Vous pouvez utiliser la fonction "recherche et remplace" de la plupart des éditeurs de texte pour remplacer l'ancienne URL par la nouvelle.

Cependant dans le cas d'un fichier volumineux, vous ne parviendrez pas à l'éditer. Dans ce cas il faudra effectuer l'opération en ligne de commande :

 sed -i 's/ancienNomDeDomaine/NouveauNomDeDomaine/g' fichier.sql  

2 commentaires

Laisser un commentaire

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

*

code

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.