Aller au contenu
Couillaman le site une demo bientot ! ×

wordpress:Changer le domaine des liens dans votre base de données MySQL/MariaDB


dokuro
 Share

Messages recommandés

 

Que doit-on modifier ?

Les articles sont stockés dans la table wp_posts. Si on regarde de plus près, on constate qu’elle contient beaucoup d’articles, plus que ce qui est publié sur le blog !

wp-update-table-300x16.jpg

919 lignes pour un peu plus de 60 articles, what the ?

En effet, cette table garde aussi la trace de toutes les révisions des articles (le champpost_status permettant de définir le… statut de l’entrée : publish, inherit).

Il nous faudra modifier deux choses en particulier : les liens du champ ‘guid’ (qui permettent de “nommer” les articles en interne, mais qui contiennent le domaine), et les liens qui se trouvent dans le contenu même des articles/révisions (dans le champ ‘post_content’). Fort heureusement, il n’est pas nécessaire de tout faire à la main (vous imaginez modifier 900+ lignes ?), et il existe plusieurs façons de faire.

Aussi, je ne peux que conseiller de faire une sauvegarde avant pour être sûr. Pour ça, PHPMyAdmin ou mysqldump feront l’affaire. Pour ce dernier, la commande est simple :

 

 
 
 
 
Shell
 
 
mysqldump -u user -ppassword bbase_wordpress >dbbackup.sql

 

Voir la page de manuel pour les options plus précises. Et suivant la quantité de modifications à apporter, il est préférable de couper l’accès au site.

Dans la suite de l’article, je remplace blog.viedugeek.info par test.viedugeek.info/blog, qui vous vous en doutez n’existe pas.

Avec le client MySQL

Probablement le plus “direct”, mais nécessite de travailler en direct sur la base.  Je vais tout de même rappeler, pour les têtes en l’air comme moi, comment se connecter à une base MariaDB (ou MySQL, c’est pareil, je vais pas le répéter à chaque fois :P) :

 

 
 
 
 
Shell
 
 
mysql -u user -ppassword base_wordpress



Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A


Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 2208
Server version: 10.0.15-MariaDB-1~wheezy-log mariadb.org binary distribution


Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.


Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.


MariaDB [base_wordpress]>

 

Evidémment on remplace user, password et base_wordpress par les utilisateur/mot de passe/nom de la base hein icon_smile.gif

MariaDB dispose d’une fonction très pratique, replace(), qui permet de procéder à des remplacements. Commençons par le guid, avec la commande suivante :

 

 
 
 
MySQL
 
 
UPDATE wp_posts SET guid = replace(guid, 'blog.seboss666.info','test.seboss666.info/blog');

 

Sans préciser de condition WHERE, MariaDB va traiter toutes les entrées de la table wp_posts. Ne pas paniquer si la commande prend du temps, vu le nombre de lignes. Il faut ensuite s’occuper du contenu. La commande est pratiquement identique :

 

 
 
 
 
MySQL
 
 
UPDATE wp_posts SET post_content = replace(post_content, 'blog.seboss666.info','test.seboss666.info/blog');

 

Et voilà, ça devrait faire l’affaire.

Avec PHPMyAdmin (commande directe)

Si vous avez un accès “complet” à PHPMyAdmin (j’ai eu le tour une fois avec un PHPMyAdmin castré, sous prétexte de sécurité–on pouvait tout de même importer des sauvegardes, allez comprendre…), vous pouvez saisir directement des commandes SQL. Il suffit juste de prévoir de sélectionner la bonne base de données, et les commandes sont alors strictement les mêmes que celles saisies dans le client MariaDB directement.

wp-update-pma-sql-300x136.jpg

En modifiant une sauvegarde

C’est un autre moyen de faire, un poil plus dangereux parce que plus “généraliste”, mais ça fonctionne aussi. Elle est surtout plus adaptée si d’aventure, vous ne pouviez pas exécuter directement des commandes. C’est peut-être plus adapté dans le cadre d’un hébergement mutualisé, ou si vous avez peur de saisir directement des commandes SQL. Donc pareil, on fait une sauvegarde (par PHPMyAdmin ou mysqldump), sauf que ce coup-ci, on va en faire une copie, et modifier cette copie à l’aide d’un bon éditeur de textes disposant de la fonction remplacer. Et encore, quand je dis “bon”, même le bon vieux Notepad de Windows propose la fonctionnalité. Car oui, la sauvegarde SQL est un gros fichier texte qu’il suffit d’ouvrir avec votre éditeur. Ensuite, il suffit d’ouvrir le menu “Édition”, et de sélectionner “Remplacer…” (ou plus rapide, le raccourci clavier Ctrl+H) qui conduit à l’ouverture de la fenêtre suivante :

wp-update-notepad-228x300.jpg

On fait comme c’est montré, à savoir blog.seboss666.info dans le champ “à remplacer”, et test.seboss666.info/blog dans le champ remplacement. Et on clique ensuite sur “Remplacer tout”, qui devrait vous dire combien de “liens” (occurrences) il a modifié. Il n’y a plus alors qu’à sauvegarder, puis importer la sauvegarde dans la base (soit avec le client en ligne de commande, soit avec PHPMyAdmin).

Des commandes “portables”

En effet, d’une part je n’ai abordé que deux outils, qui sont parmi les plus utilisés pour manipuler des bases de données MySQL/MariaDB, mais elles sont utilisables à priori dans d’autres outils, (je pense à SQLBuddy, abandonné mais toujours fonctionnel), voire même en utilisant un script maison (PHP, Python, faites votre choix). De plus, j’ai abordé le cas pratique des noms de domaine lors d’une migration d’un blog WordPress, mais sachez que vous pouvez remplacer à peu près n’importe quelle information de n’importe quelle base avec ces commandes, moyennant un poil d’adaptation évidemment.

Notez aussi que si vous utilisez des extensions de nature à stocker le nom de domaine du site, il faudra aussi y prêter attention. Je pense entre autres  aux commentaires, car même si j’utilise Disqus, une copie des commentaires est stockée au cas où je déciderais de m’en passer. Bref, si vous avez le savoir pour manipuler de la base de données, la gestion des plugins WordPress ne devrait pas être trop difficiles pour vous.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

 Share

×
×
  • Créer...