Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /data/web/4/0/forum.toile-libre.org/htdocs/include/parser.php on line 738

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /data/web/4/0/forum.toile-libre.org/htdocs/include/parser.php on line 738

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /data/web/4/0/forum.toile-libre.org/htdocs/include/parser.php on line 738

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /data/web/4/0/forum.toile-libre.org/htdocs/include/parser.php on line 738

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /data/web/4/0/forum.toile-libre.org/htdocs/include/parser.php on line 738

Sujet : Astuce Wordpress : Site de dev et site de prod

Bonjour à tous,

Je me suis récemment mis à Wordpress et je suis en train de réaliser un site hébergé sur toile-libre.
J'ai dû faire face à une problématique assez courante chez les développeurs Wordpress : mettre à jour le site de production depuis le site de développement, données comprises.
En effet, Wordpress stocke en base de données les URL (du site, des pages, images, etc ..) en dur !
ça m'a semblé assez incroyable venant du monde du CMS où généralement un simple fichier de config permet de paramétrer l'url du site, mais Wordpress n'est pas un CMS ...

Je vais donc expliquer ici la méthode que j'ai employée pour mettre à jour le site de production sur toile-libre depuis mon environnement de développement local.
Ce tutorial ne concerne que la partie base de données, je pars du principe que vous savez tous comment transférer les fichiers du site via FTP.

1. Exporter la base de données de dev

  • Via PhpMyadmin : Sélectionnez la base et cliquez sur le bouton "Exporter".

  • Via la console : mysqldump -uvotre_user_mysql -pvotre_mot_de_passe_mysql nom_db_wordpress > nom_db_wordpress_dump.sql

Nous avons donc maintenant un fichier .sql contenant l'ensemble des données du site de dev.

2. Mettre à jour la base de données de production

  • Connectez-vous à sql.toile-libre.org

  • Sélectionnez votre base wordpress et cliquez sur le bouton "Importer"

  • Cliquez sur "Parcourir" et sélectionnez le fichier .sql précédemment créé

  • Cliquez sur "Exécuter"

La base de données de production est maintenant à jour.
Seul problème, tous les liens internes du site pointent encore vers l'url du site de dev (http://localhost/...).

Nous allons donc créer un fichier .sql qui contiendra les requêtes nécessaires à la mise à jour de l'url de dev vers l'url de prod

3. Mettre à jour les urls dans la base

  • Créez un fichier texte et nommez le update_prod.sql

  • Copiez le code suivant en remplacant l'url de dev (http://localhost/mon_rep_local) et prod (http://url_site_prod) par vos urls :

UPDATE wp_options SET option_value = replace(option_value, 'http://localhost/mon_rep_local', 'http://url_site_prod')
 WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = REPLACE (guid, 'http://localhost/mon_rep_local', 'http://url_site_prod');
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://localhost/mon_rep_local', 'http://url_site_prod');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://localhost/mon_rep_local','http://url_site_prod');
  • Enregistrez votre fichier

  • Répétez l'opération du point 2 mais en sélectionnant cette fois-ci le fichier sql que vous venez de créer

Les données du site de production sont désormais à jour et les urls internes sont correctes.
J'espère que ce petit tuto vous aura été utile.

Dernière modification par swingalink (2011-12-26 11:12:18)

Thumbs up Thumbs down