Warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache' query: UPDATE cache SET data = 'a:402:{s:13:\"theme_default\";s:4:\"kewl\";s:13:\"filter_html_1\";s:1:\"1\";s:18:\"node_options_forum\";a:1:{i:0;s:6:\"status\";}s:18:\"drupal_private_key\";s:64:\"a5de3144cabd3a5a76889cdc7d52a5656ec758dd9c66b720824755fe28d5dc59\";s:10:\"menu_masks\";a:24:{i:0;i:127;i:1;i:63;i:2;i:62;i:3;i:61;i:4;i:59;i:5;i:58;i:6;i:57;i:7;i:56;i:8;i:31;i:9;i:30;i:10;i:29;i:11;i:28;i:12;i:24;i:13;i:21;i:14;i:15;i:15;i:14;i:16;i:12;i:17;i:11;i:18;i:7;i:19;i:6;i:20;i:5;i:21;i:3;i:22;i:2;i:23;i:1;}s:12:\"install_task\";s:4:\"done\";s:13:\"menu_expanded\";a:2:{i:0;s:15:\"menu-categories\";i:1;s:10:\"navigation\";}s:9:\"site_name\";s:7:\"jide.fr\";s:9:\"site_mail\";s:17:\"jide.fr@gmail.com\";s:21:\"date_defa in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:2883:\"UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Pour un projet récent, j\\'ai dû migrer des données d\\'un Drupal 5 vers un Drupal 7. Voici comment j\\'ai procédé pour que ce soit le plus facile possible. L\\'essentiel est de :</p>\\n<ul>\\n<li>Exporter les données en CSV depuis l\\'instance originale à l\\'aide de Views et d\\'un pl in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:10381:\"UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:3:{s:6:\\"result\\";a:123:{i:0;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:1:\\"1\\";}i:1;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:1:\\"3\\";}i:2;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:1:\\"5\\";}i:3;O:8:\\"stdClass\\&quot in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:5900:\"UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:4:{s:4:\\"head\\";s:0:\\"\\";s:3:\\"css\\";a:0:{}s:2:\\"js\\";a:0:{}s:6:\\"output\\";s:3320:\\"<div class=\\"view view-tagadelic view-id-tagadelic view-display-id-block_2 view-dom-id-1\\">\\n \\n \\n \\n <div class=\\"view-content\\"&gt in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:5904:\"UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_block'\nquery: UPDATE cache_block SET data = 'a:2:{s:7:\\"content\\";s:3320:\\"<div class=\\"view view-tagadelic view-id-tagadelic view-display-id-block_2 view-dom-id-1\\">\\n \\n \\n \\n <div class=\\"view-content\\">\\n <div class=\\"tagadelic_views\\"><a href=\\"/francais/android\\" class=\\&q in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:409:\"UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Follow me : <a href=\\"http://twitter.com/jidefr\\">jidefr</a></p>\\n', created = 1516310996, expire = 1516397396, headers = '', serialized = 0 WHERE cid = '1:fb82f31c75d9dcc2908dc560fa3f9280'\";s:5:\"%file\";s:37:\"/home/jideretu/www/includes/cache.inc\";s:5:\"%li in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1006:\"UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:3:{s:6:\\"result\\";a:1:{i:0;O:8:\\"stdClass\\":3:{s:10:\\"twitter_id\\";s:18:\\"937070315510861824\\";s:12:\\"twitter_text\\";s:143:\\"RT @PhilippeCorbe: Si vous avez du mal à comprendre l\\'affaire russe, et l\\'importance de l\\'information du jour, le plaider coupable de l\\ in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:2339:\"UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:4:{s:4:\\"head\\";s:0:\\"\\";s:3:\\"css\\";a:0:{}s:2:\\"js\\";a:3:{i:0;a:5:{i:0;s:38:\\"sites/default/modules/views/js/base.js\\";i:1;s:6:\\"module\\";i:2;s:6:\\"header\\";i:3;b:0;i:4;b:1;}i:1;a:5:{i:0;s:43:\\"sites/default/modules/views/js/ajax_view.js\\";i:1;s in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:676:\"UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_block'\nquery: UPDATE cache_block SET data = 'a:2:{s:7:\\"subject\\";s:15:\\"Recent Comments\\";s:7:\\"content\\";s:187:\\"<div id=\\"dsq-recentcomments\\" class=\\"dsq-widget\\"><script type=\\"text/javascript\\" src=\\"http://disqus.com/forums/jide/recent_comments_widget.js?num_items=1&hide_avatars=1\\& in /home/jideretu/www/includes/database.mysql.inc on line 135
Migrer des données de n'importe quelle version de Drupal vers Drupal 7.x | jide.fr

Migrer des données de n'importe quelle version de Drupal vers Drupal 7.x

  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Pour un projet récent, j\'ai dû migrer des données d\'un Drupal 5 vers un Drupal 7. Voici comment j\'ai procédé pour que ce soit le plus facile possible. L\'essentiel est de :</p>\n<ul>\n<li>Exporter les données en CSV depuis l\'instance originale à l\'aide de Views et d\'un plugin de sortie en CSV.</li>\n<li>Les réimporter dans l\'instance en 7.x en utilisant Feeds.</li>\n</ul>\n<p>Les détails :</p>\n<ul>\n<li>Côté 5.x :\n<ul>\n<li>D\'abord, faire une copie locale du site en 5.x.</li>\n<li>Installer views_bonus module.</li>\n<li>Activer views_bonus_export. Cela permet d\'exporter une vue en CSV.</li>\n<li>Créer les vues d\'exportation. Par example une vue qui liste tous les nodes de type \"blog\", avec tous les champs nécessaires.</li>\n<li><strong>Hacker</strong> cette instance à volonté. Cette instance ne servant qu\'à la migration, peu importe si le code est massacré, donnez-vous en à coeur joie.</li>\n<li>Exporter chaque vue en fichier CSV.</li>\n</ul>\n</li>\n<li>Côté 7.x :\n<ul>\n<li>Installer feeds. Vous aurez peut être aussi besoin de modules comme feeds_comment_processor, feeds_profile2_processor. L\'issue queue de feeds est pleine d\'informations précieuses et de modules bricolés mais très utiles.</li>\n<li>Installer feeds_tamper. Il permet de modifier les données avant leur importation par feeds.</li>\n<li>Vous aurez peut être besoin d\'ajuster un peu le code du module feeds pour vos besoins.</li>\n<li>Créez des feeds importers pour chaque type d\'entité à importer et ajustez les fields mappings.</li>\n<li>Il m\'a aussi fallu coder quelques modules d\'import pour certaines données comme les flags. La fonction PHP fgetcsv() est la bienvenue pour parser les fichiers CSV.</li>\n<li>Importer les CSV.</li>\n<li>Et voilà !</li>\n</ul>\n</li>\n</ul>\n<p>Il faut un peu tester les choses pour obtenir un processus d\'import / export fonctionnel, mais une fois en place, les choses se passent très bien.</p>\n<p>On peut utiliser cette technique avec n\'importe quelle version de Drupal ou même d\'une autre source tant qu\'il est possible d\'exporter au format CSV.</p>\n', created = 1516310996, expire = 1516397396, headers = '', serialized = 0 WHERE cid = '1:3fd1930cb5873d3dc2b23687933e31e3' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:3:{s:6:\"result\";a:123:{i:0;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"1\";}i:1;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"3\";}i:2;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"5\";}i:3;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"6\";}i:4;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"7\";}i:5;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"8\";}i:6;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"9\";}i:7;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"10\";}i:8;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"11\";}i:9;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"12\";}i:10;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"13\";}i:11;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"14\";}i:12;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"15\";}i:13;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"16\";}i:14;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"17\";}i:15;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"18\";}i:16;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"19\";}i:17;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"20\";}i:18;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"21\";}i:19;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"22\";}i:20;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"23\";}i:21;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"24\";}i:22;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"25\";}i:23;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"26\";}i:24;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"27\";}i:25;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"28\";}i:26;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"29\";}i:27;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"30\";}i:28;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"31\";}i:29;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"32\";}i:30;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"33\";}i:31;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"34\";}i:32;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"35\";}i:33;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"36\";}i:34;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"37\";}i:35;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"38\";}i:36;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"39\";}i:37;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"40\";}i:38;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"41\";}i:39;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"42\";}i:40;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"43\";}i:41;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"44\";}i:42;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"46\";}i:43;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"49\";}i:44;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"50\";}i:45;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"51\";}i:46;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"52\";}i:47;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"55\";}i:48;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"56\";}i:49;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"57\";}i:50;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"58\";}i:51;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"59\";}i:52;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"61\";}i:53;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"64\";}i:54;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"66\";}i:55;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"68\";}i:56;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"70\";}i:57;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"71\";}i:58;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"73\";}i:59;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"75\";}i:60;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"77\";}i:61;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"79\";}i:62;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"81\";}i:63;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"82\";}i:64;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"85\";}i:65;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"86\";}i:66;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"88\";}i:67;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"89\";}i:68;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"91\";}i:69;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"93\";}i:70;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"96\";}i:71;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"97\";}i:72;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"99\";}i:73;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"102\";}i:74;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"103\";}i:75;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"105\";}i:76;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"107\";}i:77;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"109\";}i:78;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"112\";}i:79;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"114\";}i:80;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"115\";}i:81;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"116\";}i:82;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"117\";}i:83;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"120\";}i:84;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"122\";}i:85;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"123\";}i:86;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"125\";}i:87;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"127\";}i:88;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"129\";}i:89;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"131\";}i:90;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"133\";}i:91;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"136\";}i:92;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"137\";}i:93;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"141\";}i:94;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"143\";}i:95;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"146\";}i:96;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"148\";}i:97;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"150\";}i:98;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"152\";}i:99;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"154\";}i:100;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"156\";}i:101;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"157\";}i:102;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"160\";}i:103;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"162\";}i:104;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"164\";}i:105;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"166\";}i:106;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"168\";}i:107;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"170\";}i:108;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"172\";}i:109;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"189\";}i:110;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"191\";}i:111;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"193\";}i:112;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"195\";}i:113;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"201\";}i:114;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"202\";}i:115;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"204\";}i:116;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"206\";}i:117;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"207\";}i:118;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"210\";}i:119;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"212\";}i:120;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"214\";}i:121;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"216\";}i:122;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"218\";}}s:10:\"total_rows\";i:123;s:5:\"pager\";a:5:{s:9:\"use_pager\";b:0;s:14:\"items_per_page\";i:0;s:7:\"element\";i:0;s:6:\"offset\";i:0;s:12:\"current_page\";i:0;}}', created = 1516310996, expire = 1516314596, headers = '', serialized = 1 WHERE cid = 'tagadelic:block_2:results:a05686bc58909a434d941cc375c8cde7' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:4:{s:4:\"head\";s:0:\"\";s:3:\"css\";a:0:{}s:2:\"js\";a:0:{}s:6:\"output\";s:3320:\"<div class=\"view view-tagadelic view-id-tagadelic view-display-id-block_2 view-dom-id-1\">\n \n \n \n <div class=\"view-content\">\n <div class=\"tagadelic_views\"><a href=\"/francais/android\" class=\"tagadelic level1\" rel=\"tag\">android</a> \n<a href=\"/francais/apache\" class=\"tagadelic level1\" rel=\"tag\">Apache</a> \n<a href=\"/francais/automator\" class=\"tagadelic level1\" rel=\"tag\">Automator</a> \n<a href=\"/francais/bd\" class=\"tagadelic level1\" rel=\"tag\">BD</a> \n<a href=\"/francais/bootstrap\" class=\"tagadelic level3\" rel=\"tag\">bootstrap</a> \n<a href=\"/francais/canal\" class=\"tagadelic level1\" rel=\"tag\">canal +</a> \n<a href=\"/francais/command-line\" class=\"tagadelic level1\" rel=\"tag\">Command line</a> \n<a href=\"/francais/css\" class=\"tagadelic level2\" rel=\"tag\">CSS</a> \n<a href=\"/francais/customize\" class=\"tagadelic level1\" rel=\"tag\">customize</a> \n<a href=\"/francais/drupal\" class=\"tagadelic level5\" rel=\"tag\">Drupal</a> \n<a href=\"/francais/dwmapi\" class=\"tagadelic level1\" rel=\"tag\">Dwmapi</a> \n<a href=\"/francais/facebook\" class=\"tagadelic level1\" rel=\"tag\">Facebook</a> \n<a href=\"/francais/finder\" class=\"tagadelic level1\" rel=\"tag\">Finder</a> \n<a href=\"/francais/freshy\" class=\"tagadelic level1\" rel=\"tag\">freshy</a> \n<a href=\"/francais/game\" class=\"tagadelic level1\" rel=\"tag\">game</a> \n<a href=\"/francais/git\" class=\"tagadelic level1\" rel=\"tag\">GIT</a> \n<a href=\"/francais/github\" class=\"tagadelic level1\" rel=\"tag\">github</a> \n<a href=\"/francais/grunt\" class=\"tagadelic level1\" rel=\"tag\">grunt</a> \n<a href=\"/francais/html\" class=\"tagadelic level1\" rel=\"tag\">HTML</a> \n<a href=\"/francais/javascript\" class=\"tagadelic level2\" rel=\"tag\">javascript</a> \n<a href=\"/francais/jidefr\" class=\"tagadelic level1\" rel=\"tag\">jide.fr</a> \n<a href=\"/francais/jquery-0\" class=\"tagadelic level1\" rel=\"tag\">jQuery</a> \n<a href=\"/francais/jquery-ui-0\" class=\"tagadelic level2\" rel=\"tag\">jQuery UI</a> \n<a href=\"/francais/lamp\" class=\"tagadelic level1\" rel=\"tag\">LAMP</a> \n<a href=\"/francais/le-moteur-de-recherche\" class=\"tagadelic level1\" rel=\"tag\">le moteur de recherche</a> \n<a href=\"/francais/less\" class=\"tagadelic level2\" rel=\"tag\">less</a> \n<a href=\"/francais/mac-os-x\" class=\"tagadelic level1\" rel=\"tag\">Mac OS X</a> \n<a href=\"/francais/made-in-france\" class=\"tagadelic level1\" rel=\"tag\">made in france</a> \n<a href=\"/francais/mobile\" class=\"tagadelic level1\" rel=\"tag\">mobile</a> \n<a href=\"/francais/mongo-db\" class=\"tagadelic level1\" rel=\"tag\">mongo db</a> \n<a href=\"/francais/mysql\" class=\"tagadelic level1\" rel=\"tag\">MySQL</a> \n<a href=\"/francais/nodejs\" class=\"tagadelic level1\" rel=\"tag\">nodejs</a> \n<a href=\"/francais/php\" class=\"tagadelic level2\" rel=\"tag\">PHP</a> \n<a href=\"/francais/qt\" class=\"tagadelic level1\" rel=\"tag\">Qt</a> \n<a href=\"/francais/queue-api\" class=\"tagadelic level1\" rel=\"tag\">Queue API</a> \n<a href=\"/francais/ruby\" class=\"tagadelic level1\" rel=\"tag\">Ruby</a> \n<a href=\"/francais/rules\" class=\"tagadelic level1\" rel=\"tag\">Rules</a> \n<a href=\"/francais/vagrant\" class=\"tagadelic level1\" rel=\"tag\">Vagrant</a> \n<a href=\"/francais/views-0\" class=\"tagadelic level1\" rel=\"tag\">Views</a> \n<a href=\"/francais/windows-api\" class=\"tagadelic level1\" rel=\"tag\">Windows API</a> \n<a href=\"/francais/wordpress\" class=\"tagadelic level6\" rel=\"tag\">wordpress</a> \n</div> </div>\n \n \n \n \n \n \n</div> \";}', created = 1516310996, expire = 1516314596, headers = '', serialized = 1 WHERE cid = 'tagadelic:block_2:output:19f4215458053dda7780acaf26b5d77c' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_block' query: UPDATE cache_block SET data = 'a:2:{s:7:\"content\";s:3320:\"<div class=\"view view-tagadelic view-id-tagadelic view-display-id-block_2 view-dom-id-1\">\n \n \n \n <div class=\"view-content\">\n <div class=\"tagadelic_views\"><a href=\"/francais/android\" class=\"tagadelic level1\" rel=\"tag\">android</a> \n<a href=\"/francais/apache\" class=\"tagadelic level1\" rel=\"tag\">Apache</a> \n<a href=\"/francais/automator\" class=\"tagadelic level1\" rel=\"tag\">Automator</a> \n<a href=\"/francais/bd\" class=\"tagadelic level1\" rel=\"tag\">BD</a> \n<a href=\"/francais/bootstrap\" class=\"tagadelic level3\" rel=\"tag\">bootstrap</a> \n<a href=\"/francais/canal\" class=\"tagadelic level1\" rel=\"tag\">canal +</a> \n<a href=\"/francais/command-line\" class=\"tagadelic level1\" rel=\"tag\">Command line</a> \n<a href=\"/francais/css\" class=\"tagadelic level2\" rel=\"tag\">CSS</a> \n<a href=\"/francais/customize\" class=\"tagadelic level1\" rel=\"tag\">customize</a> \n<a href=\"/francais/drupal\" class=\"tagadelic level5\" rel=\"tag\">Drupal</a> \n<a href=\"/francais/dwmapi\" class=\"tagadelic level1\" rel=\"tag\">Dwmapi</a> \n<a href=\"/francais/facebook\" class=\"tagadelic level1\" rel=\"tag\">Facebook</a> \n<a href=\"/francais/finder\" class=\"tagadelic level1\" rel=\"tag\">Finder</a> \n<a href=\"/francais/freshy\" class=\"tagadelic level1\" rel=\"tag\">freshy</a> \n<a href=\"/francais/game\" class=\"tagadelic level1\" rel=\"tag\">game</a> \n<a href=\"/francais/git\" class=\"tagadelic level1\" rel=\"tag\">GIT</a> \n<a href=\"/francais/github\" class=\"tagadelic level1\" rel=\"tag\">github</a> \n<a href=\"/francais/grunt\" class=\"tagadelic level1\" rel=\"tag\">grunt</a> \n<a href=\"/francais/html\" class=\"tagadelic level1\" rel=\"tag\">HTML</a> \n<a href=\"/francais/javascript\" class=\"tagadelic level2\" rel=\"tag\">javascript</a> \n<a href=\"/francais/jidefr\" class=\"tagadelic level1\" rel=\"tag\">jide.fr</a> \n<a href=\"/francais/jquery-0\" class=\"tagadelic level1\" rel=\"tag\">jQuery</a> \n<a href=\"/francais/jquery-ui-0\" class=\"tagadelic level2\" rel=\"tag\">jQuery UI</a> \n<a href=\"/francais/lamp\" class=\"tagadelic level1\" rel=\"tag\">LAMP</a> \n<a href=\"/francais/le-moteur-de-recherche\" class=\"tagadelic level1\" rel=\"tag\">le moteur de recherche</a> \n<a href=\"/francais/less\" class=\"tagadelic level2\" rel=\"tag\">less</a> \n<a href=\"/francais/mac-os-x\" class=\"tagadelic level1\" rel=\"tag\">Mac OS X</a> \n<a href=\"/francais/made-in-france\" class=\"tagadelic level1\" rel=\"tag\">made in france</a> \n<a href=\"/francais/mobile\" class=\"tagadelic level1\" rel=\"tag\">mobile</a> \n<a href=\"/francais/mongo-db\" class=\"tagadelic level1\" rel=\"tag\">mongo db</a> \n<a href=\"/francais/mysql\" class=\"tagadelic level1\" rel=\"tag\">MySQL</a> \n<a href=\"/francais/nodejs\" class=\"tagadelic level1\" rel=\"tag\">nodejs</a> \n<a href=\"/francais/php\" class=\"tagadelic level2\" rel=\"tag\">PHP</a> \n<a href=\"/francais/qt\" class=\"tagadelic level1\" rel=\"tag\">Qt</a> \n<a href=\"/francais/queue-api\" class=\"tagadelic level1\" rel=\"tag\">Queue API</a> \n<a href=\"/francais/ruby\" class=\"tagadelic level1\" rel=\"tag\">Ruby</a> \n<a href=\"/francais/rules\" class=\"tagadelic level1\" rel=\"tag\">Rules</a> \n<a href=\"/francais/vagrant\" class=\"tagadelic level1\" rel=\"tag\">Vagrant</a> \n<a href=\"/francais/views-0\" class=\"tagadelic level1\" rel=\"tag\">Views</a> \n<a href=\"/francais/windows-api\" class=\"tagadelic level1\" rel=\"tag\">Windows API</a> \n<a href=\"/francais/wordpress\" class=\"tagadelic level6\" rel=\"tag\">wordpress</a> \n</div> </div>\n \n \n \n \n \n \n</div> \";s:7:\"subject\";s:4:\"Tags\";}', created = 1516310996, expire = -1, headers = '', serialized = 1 WHERE cid = 'views:tagadelic-block_2:kewl:fr:http://jide.fr/francais/migrer-des-donnees-de-nimporte-quelle-version-de-drupal-vers-drupal-7x' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Follow me : <a href=\"http://twitter.com/jidefr\">jidefr</a></p>\n', created = 1516310996, expire = 1516397396, headers = '', serialized = 0 WHERE cid = '1:fb82f31c75d9dcc2908dc560fa3f9280' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:3:{s:6:\"result\";a:1:{i:0;O:8:\"stdClass\":3:{s:10:\"twitter_id\";s:18:\"937070315510861824\";s:12:\"twitter_text\";s:143:\"RT @PhilippeCorbe: Si vous avez du mal à comprendre l\'affaire russe, et l\'importance de l\'information du jour, le plaider coupable de l\'anc…\";s:20:\"twitter_created_time\";s:10:\"1512249947\";}}s:10:\"total_rows\";N;s:5:\"pager\";a:5:{s:9:\"use_pager\";s:1:\"0\";s:14:\"items_per_page\";i:1;s:7:\"element\";i:0;s:6:\"offset\";i:0;s:12:\"current_page\";i:0;}}', created = 1516310996, expire = 1516314596, headers = '', serialized = 1 WHERE cid = 'tweets:block:results:edb266de823293cad00bd74d438dccde' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:4:{s:4:\"head\";s:0:\"\";s:3:\"css\";a:0:{}s:2:\"js\";a:3:{i:0;a:5:{i:0;s:38:\"sites/default/modules/views/js/base.js\";i:1;s:6:\"module\";i:2;s:6:\"header\";i:3;b:0;i:4;b:1;}i:1;a:5:{i:0;s:43:\"sites/default/modules/views/js/ajax_view.js\";i:1;s:6:\"module\";i:2;s:6:\"header\";i:3;b:0;i:4;b:1;}i:2;a:3:{i:0;a:1:{s:5:\"views\";a:2:{s:9:\"ajax_path\";s:20:\"/francais/views/ajax\";s:9:\"ajaxViews\";a:1:{i:0;a:7:{s:9:\"view_name\";s:6:\"tweets\";s:15:\"view_display_id\";s:5:\"block\";s:9:\"view_args\";s:0:\"\";s:9:\"view_path\";s:8:\"node/166\";s:14:\"view_base_path\";N;s:11:\"view_dom_id\";i:2;s:13:\"pager_element\";i:0;}}}}i:1;s:7:\"setting\";i:2;s:6:\"header\";}}s:6:\"output\";s:740:\"<div class=\"view view-tweets view-id-tweets view-display-id-block view-dom-id-2\">\n \n \n \n <div class=\"view-content\">\n <div class=\"views-row views-row-1 views-row-odd views-row-first views-row-last\">\n \n <span class=\"views-field-text\">\n <span class=\"field-content\">RT <a target=\"_blank\" rel=\"nofollow\" href=\"http://twitter.com/PhilippeCorbe\">@PhilippeCorbe</a>: Si vous avez du mal à comprendre l\'affaire russe, et l\'importance de l\'information du jour, le plaider coupable de l\'anc…</span>\n </span>\n &#8212; \n <span class=\"views-field-created-time\">\n <span class=\"field-content\">Il y a <em>6 semaines 5 jours</em></span>\n </span>\n </div>\n </div>\n \n \n \n \n \n \n</div> \";}', created = 1516310996, expire = 1516314596, headers = '', serialized = 1 WHERE cid = 'tweets:block:output:3612a25bce275b87887cbb554efa85c6' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.86.47' for table 'cache_block' query: UPDATE cache_block SET data = 'a:2:{s:7:\"subject\";s:15:\"Recent Comments\";s:7:\"content\";s:187:\"<div id=\"dsq-recentcomments\" class=\"dsq-widget\"><script type=\"text/javascript\" src=\"http://disqus.com/forums/jide/recent_comments_widget.js?num_items=1&amp;hide_avatars=1\"></script></div>\";}', created = 1516310996, expire = -1, headers = '', serialized = 1 WHERE cid = 'disqus:disqus_recent_comments:kewl:fr' in /home/jideretu/www/includes/cache.inc on line 112.

Pour un projet récent, j'ai dû migrer des données d'un Drupal 5 vers un Drupal 7. Voici comment j'ai procédé pour que ce soit le plus facile possible. L'essentiel est de :

  • Exporter les données en CSV depuis l'instance originale à l'aide de Views et d'un plugin de sortie en CSV.
  • Les réimporter dans l'instance en 7.x en utilisant Feeds.

Les détails :

  • Côté 5.x :
    • D'abord, faire une copie locale du site en 5.x.
    • Installer views_bonus module.
    • Activer views_bonus_export. Cela permet d'exporter une vue en CSV.
    • Créer les vues d'exportation. Par example une vue qui liste tous les nodes de type "blog", avec tous les champs nécessaires.
    • Hacker cette instance à volonté. Cette instance ne servant qu'à la migration, peu importe si le code est massacré, donnez-vous en à coeur joie.
    • Exporter chaque vue en fichier CSV.
  • Côté 7.x :
    • Installer feeds. Vous aurez peut être aussi besoin de modules comme feeds_comment_processor, feeds_profile2_processor. L'issue queue de feeds est pleine d'informations précieuses et de modules bricolés mais très utiles.
    • Installer feeds_tamper. Il permet de modifier les données avant leur importation par feeds.
    • Vous aurez peut être besoin d'ajuster un peu le code du module feeds pour vos besoins.
    • Créez des feeds importers pour chaque type d'entité à importer et ajustez les fields mappings.
    • Il m'a aussi fallu coder quelques modules d'import pour certaines données comme les flags. La fonction PHP fgetcsv() est la bienvenue pour parser les fichiers CSV.
    • Importer les CSV.
    • Et voilà !

Il faut un peu tester les choses pour obtenir un processus d'import / export fonctionnel, mais une fois en place, les choses se passent très bien.

On peut utiliser cette technique avec n'importe quelle version de Drupal ou même d'une autre source tant qu'il est possible d'exporter au format CSV.


Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:0:\"\";s:5:\"%file\";s:37:\"/home/jideretu/www/includes/cache.inc\";s:5:\"%line\";i:112;}', 3, '', 'http://jide.fr/francais/migrer-des-donnees-de-nimporte-quelle-version-de-drupal-vers-drupal-7x', '', '54.234.65.78', 1516310996) in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.86.47' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:428:\"UPDATE command denied to user &#039;jideretumysql&#039;@&#039;10.0.86.47&#039; for table &#039;sessions&#039;\nquery: UPDATE sessions SET uid = 0, cache = 0, hostname = &#039;54.234.65.78&#039;, session = &#039;messages|a:1:{s:5:\\&quot;error\\&quot;;a:1:{i:0;s:68:\\&quot;user warning: in /home/jideretu/www/includes/cache.inc on line 112.\\&quot;;}}&#039;, timestamp = 1516310996 WHERE sid = &#039;33k8e5rtedvrhpqpniv13d9cr3&#039;\";s:5:\"%file\";s:39:\"/home/jideretu/www/includes/session.inc\";s:5:\"%line in /home/jideretu/www/includes/database.mysql.inc on line 135