Migrer les données de
n’importe quel CMS vers
WordPress
WP Tech 2015
Nantes @tonyarchambeau
WP Tech 2015 2
WP Tech 2015 3
Version 1.2.8
Plus maintenue depuis 2008
…
2008 ?
Dotclear 1.2.8

dc_categorie

dc_comment

dc_link

dc_log

dc_ping

dc_post

dc_session

dc_user
WP Tech 2015 4
Dotclear 1.2.8

dc_categorie

dc_comment

dc_link

dc_log

dc_ping

dc_post

dc_session

dc_user
WP Tech 2015 5
wp_comments + wp_commentmeta
wp_user + wp_usermeta
wp_posts + wp_postmeta
wp_terms + wp_term_relationships + wp_term_taxonomy
wp_links
wp_options
Les CMS
WP Tech 2015 6
« C'est la même chose, mais en
différent. »
WP Tech 2015 7
Oui, c'est possible de
migrer n'importe quel
CMS vers WordPress
Il y a les scripts automatisés
– Gratuit
– Freemium
– Payant
Limites
– Certains CMS
– Certaines versions
– Certains contenu
WP Tech 2015 8
Comment
migrer ?
Et il y a la méthode
artisanale …
directement dans
PhpMyAdmin
WP Tech 2015 9
Déménageur de
contenu
WP Tech 2015 10
Avant de
commencer
Backup du CMS à migrer

Backup de l'installation
WordPress qui recevra les
données

Environnement de
développement

Backup à chaque étape
importante de la migration
WP Tech 2015 11
Purger avant de commencer
WP Tech 2015 12
Tables de contenu
CMS maison : WordPress :
WP Tech 2015 13
Tables de contenu
 INSERT INTO wp_posts 
   (post_author, post_date, post_date_gmt,  post_content, 
post_title, post_name)
 SELECT 
   1, FROM_UNIXTIME(date),
   DATE_ADD(FROM_UNIXTIME(date), INTERVAL ­1 HOUR), 
contenu, titre, slug 
 FROM old_cms_article;
WP Tech 2015 14
Méthode Jedi
Tables de contenu
WP Tech 2015 15
Méthode Padawan
1) Créer dans la table « wp_posts » les
mêmes colonnes que le CMS maison.
2) Transférer le contenu de la table du
CMS maison vers les nouvelles
colonnes « wp_posts ».
3) Déplacer les nouvelles colonnes
« wp_posts » vers les vrais colonnes,
une à une, grâce à UPDATE
Tables de contenu
WP Tech 2015 16
Tables de contenu
WP Tech 2015 17
Tables de contenu
WP Tech 2015 18
 INSERT INTO wp_posts 
   (titre, contenu, date)
 SELECT titre, contenu, date
 FROM old_cms_article;
Tables de contenu
WP Tech 2015 19
 UPDATE wp_posts 
 SET post_title = titre
Tables de contenu
WP Tech 2015 20
 UPDATE wp_posts 
 SET post_content = contenu
Tables de contenu
WP Tech 2015 21
 UPDATE wp_posts 
 SET post_date = FROM_UNIXTIME(date),
     post_date_gmt = DATE_ADD(FROM_UNIXTIME(date), INTERVAL 
­1 HOUR) 
Tables des utilisateurs
CMS maison : WordPress :
WP Tech 2015 22
Tables des utilisateurs
Champs supplémentaires :
- à transférer vers wp_usermeta
WP Tech 2015 23
 INSERT INTO wp_usermeta 
 (user_id, meta_key, meta_value)
 SELECT ID, 'first_name', prenom 
 FROM wp_users;
 INSERT INTO wp_usermeta 
 (user_id, meta_key, meta_value)
 SELECT ID, 'last_name', nom 
 FROM wp_users;
Les problématiques
WP Tech 2015 24
Les dates
1) 2015-12-05
2) 2015-12-05 11:15
3) 2015-12-05 11:15:00
4) 05/12/2015
5) 05/12/2015 11h15
6) 12/05/2015
7) 1449310500
WP Tech 2015 25
Les dates
 CONCAT( 
   SUBSTR('12/05/2015', 7, 4), 
   '­',
   SUBSTR('12/05/2015', 4, 2), 
   '­',
   SUBSTR('12/05/2015', 1, 2), 
   ' 11:15:00' );
 ­­ 2015­05­12 11:15:00
 FROM_UNIXTIME(1449310500);
 ­­ 2015­05­12 11:15:00
 CONCAT('2015­12­05', ' ', '11:15:00');
­­ 2015­05­12 11:15:00
WP Tech 2015 26
Les médias
WP Tech 2015 27
Penser aux images et fichiers.
Conserver le même dossier
Ou
Déplacer dans /wp-content/uploads/
Les URL
WP Tech 2015 28
Remplacer les liens internes modifiés.
La fonction REPLACE() sera utile.
 UPDATE wp_posts
 SET post_content = REPLACE(
                      post_content, 
                      'www.ancien­site.fr', 
                      'www.nouveau­site.fr' );
Les clés d'une bonne migration
WP Tech 2015 29
WP Tech 2015 30
Clé n°1 :
Un simple copier/coller peut suffire dans
certains cas.
WP Tech 2015 31
Clé n°2 :
Bien connaître les fonctionnalités SQL.
REPLACE()
CONCAT()
FROM_UNIXTIME()
SUBSTR()
INSERT ... ON DUPLICATE KEY
...
WP Tech 2015 32
Clé n°3 :
Loi de Murphy :
« si quelque chose peut mal tourner
alors ça tournera mal »
WP Tech 2015 33
Clé n°4 :
Il y a toujours des cas particuliers
WP Tech 2015 34
Clé n°5 :
Un déménageur, déplace les meubles
sans se soucier de la qualité.
WP Tech 2015 35
Clé n°6 :
Logger des erreurs 404
Merci
WP Tech 2015 36
Tony Archambeau
@tonyarchambeau
Fondateur d'Organilog
Application de gestion d'interventions (mobile + web)
Programme revendeur :
http://fr.organilog.com/wptech2015

Migrer les données de n'importe quel CMS vers WordPress