Warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.154' 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_def in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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:3036:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.154' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>For a recent project, I had to migrate from Drupal 5 to Drupal 7. Here is how I did it without too much pain. The key steps are :</p>\\n<ul>\\n<li>Export data to CSV from the original instance using Views module and a CSV output plugin.</li>\\n<li>Import them in the 7.x instance using Feeds.</li>\\n</ul&a in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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:6491:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.154' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:3:{s:6:\\"result\\";a:74:{i:0;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:1:\\"4\\";}i:1;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:1:\\"2\\";}i:2;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:2:\\"47\\";}i:3;O:8:\\"stdClass\\&quo in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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:6304:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.154' 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:3576:\\"<div class=\\"view view-tagadelic view-id-tagadelic view-display-id-block_1 view-dom-id-1\\">\\n \\n \\n \\n <div class=\\"view-content\\"& in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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:6278:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.154' for table 'cache_block'\nquery: UPDATE cache_block SET data = 'a:2:{s:7:\\"content\\";s:3576:\\"<div class=\\"view view-tagadelic view-id-tagadelic view-display-id-block_1 view-dom-id-1\\">\\n \\n \\n \\n <div class=\\"view-content\\">\\n <div class=\\"tagadelic_views\\"><a href=\\"/english/android-0\\" class=\\&am in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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:410:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.154' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Follow me : <a href=\\"http://twitter.com/jidefr\\">jidefr</a></p>\\n', created = 1524227586, expire = 1524313986, headers = '', serialized = 0 WHERE cid = '1:fb82f31c75d9dcc2908dc560fa3f9280'\";s:5:\"%file\";s:37:\"/home/jideretu/www/includes/cache.inc\";s:5:\"% in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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:1007:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.154' 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.66.154' 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:2333:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.154' 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 in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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:677:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.154' 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
Migrate from any Drupal version to 7.x | jide.fr

Migrate from any Drupal version to 7.x

  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.154' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>For a recent project, I had to migrate from Drupal 5 to Drupal 7. Here is how I did it without too much pain. The key steps are :</p>\n<ul>\n<li>Export data to CSV from the original instance using Views module and a CSV output plugin.</li>\n<li>Import them in the 7.x instance using Feeds.</li>\n</ul>\n<p>The details :</p>\n<ul>\n<li>On the 5.x side :\n<ul>\n<li>First, grab a copy from the 5.x site and install it locally.</li>\n<li>Install views_bonus module.</li>\n<li>Enable views_bonus_export. It will enable CSV export for views.</li>\n<li>Create your export views. E.g. A view listing all \"blog\" nodes, with all needed fields.</li>\n<li><strong>Hack</strong> everything you need. Yes, just do whatever dirty hacks you need. This version of the 5.x site won\'t ever be used anywhere else, no one will ever blame you for killing kittens here. Need to reformat HTML output of some field ? Hack theme_views_bonus_export_csv() in views_bonus_module. Want to output Organic groups names in plain text instead of a link ? Go for og_handler_field_nodelink() in og_views.inc from go module. Feels so good to make dirty things sometimes.</li>\n<li>Export each views to CSV files.</li>\n</ul>\n</li>\n<li>On the 7.x side :\n<ul>\n<li>Install feeds module. You may also need additional modules such as feeds_comment_processor, feeds_profile2_processor. Look at the feeds issue queue, there is a LOT of interesting things there which will help you get processors, patches (to keep hides kids e.g.) and tips you might need.</li>\n<li>Install feeds_tamper. It modifies feeds data before it gets saved, so if hacking in 5.x was not enough, you could modify data before it is actually processed by feeds.</li>\n<li>You may have to tweak feeds module a little for it to fit your needs.</li>\n<li>Create feeds importers for each entity types you need to import. Adjust fields mappings.</li>\n<li>I also had to create a custom import code for some pieces of content that were not handled by feeds, for example flags. PHP\'s fgetcsv() is your friend.</li>\n<li>Import CSV files.</li>\n<li>You\'re done !</li>\n</ul>\n</li>\n</ul>\n<p>You will probably have to test things around as I did for the process to go smoothly, but once everything is set up, things went very well.</p>\n<p>This technique is applicable with any Drupal version, and even any source as long as you can export data to CSV.</p>\n', created = 1524227586, expire = 1524313986, headers = '', serialized = 0 WHERE cid = '1:3c0f85d2dcb87a2bd5aaa36102e31868' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.154' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:3:{s:6:\"result\";a:74:{i:0;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"4\";}i:1;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"2\";}i:2;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"47\";}i:3;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"48\";}i:4;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"54\";}i:5;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"60\";}i:6;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"62\";}i:7;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"63\";}i:8;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"65\";}i:9;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"67\";}i:10;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"69\";}i:11;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"72\";}i:12;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"74\";}i:13;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"76\";}i:14;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"78\";}i:15;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"80\";}i:16;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"83\";}i:17;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"84\";}i:18;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"87\";}i:19;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"90\";}i:20;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"92\";}i:21;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"94\";}i:22;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"95\";}i:23;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"98\";}i:24;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"100\";}i:25;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"101\";}i:26;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"104\";}i:27;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"106\";}i:28;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"108\";}i:29;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"110\";}i:30;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"111\";}i:31;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"113\";}i:32;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"118\";}i:33;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"119\";}i:34;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"121\";}i:35;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"124\";}i:36;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"126\";}i:37;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"128\";}i:38;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"130\";}i:39;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"132\";}i:40;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"134\";}i:41;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"135\";}i:42;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"138\";}i:43;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"142\";}i:44;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"144\";}i:45;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"145\";}i:46;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"147\";}i:47;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"149\";}i:48;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"151\";}i:49;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"153\";}i:50;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"155\";}i:51;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"158\";}i:52;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"159\";}i:53;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"161\";}i:54;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"163\";}i:55;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"165\";}i:56;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"167\";}i:57;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"169\";}i:58;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"171\";}i:59;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"173\";}i:60;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"187\";}i:61;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"188\";}i:62;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"190\";}i:63;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"192\";}i:64;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"194\";}i:65;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"200\";}i:66;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"203\";}i:67;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"205\";}i:68;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"208\";}i:69;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"209\";}i:70;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"211\";}i:71;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"213\";}i:72;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"215\";}i:73;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"217\";}}s:10:\"total_rows\";i:74;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 = 1524227586, expire = 1524231186, headers = '', serialized = 1 WHERE cid = 'tagadelic:block_1:results:e95417a84dd0b10d3ce7de97e90f7660' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.154' 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:3576:\"<div class=\"view view-tagadelic view-id-tagadelic view-display-id-block_1 view-dom-id-1\">\n \n \n \n <div class=\"view-content\">\n <div class=\"tagadelic_views\"><a href=\"/english/android-0\" class=\"tagadelic level1\" rel=\"tag\">android</a> \n<a href=\"/english/apache-0\" class=\"tagadelic level1\" rel=\"tag\">Apache</a> \n<a href=\"/english/automator-0\" class=\"tagadelic level1\" rel=\"tag\">Automator</a> \n<a href=\"/english/bootstrap-0\" class=\"tagadelic level3\" rel=\"tag\">bootstrap</a> \n<a href=\"/english/canal-0\" class=\"tagadelic level1\" rel=\"tag\">canal +</a> \n<a href=\"/english/command-line-0\" class=\"tagadelic level1\" rel=\"tag\">Command line</a> \n<a href=\"/english/css\" class=\"tagadelic level1\" rel=\"tag\">CSS</a> \n<a href=\"/english/css-0\" class=\"tagadelic level1\" rel=\"tag\">CSS</a> \n<a href=\"/english/customize-0\" class=\"tagadelic level1\" rel=\"tag\">customize</a> \n<a href=\"/english/drupal-0\" class=\"tagadelic level5\" rel=\"tag\">Drupal</a> \n<a href=\"/english/drupal\" class=\"tagadelic level2\" rel=\"tag\">Drupal</a> \n<a href=\"/english/dwmapi-0\" class=\"tagadelic level1\" rel=\"tag\">Dwmapi</a> \n<a href=\"/english/facebook-0\" class=\"tagadelic level1\" rel=\"tag\">Facebook</a> \n<a href=\"/english/finder-0\" class=\"tagadelic level1\" rel=\"tag\">Finder</a> \n<a href=\"/english/freshy-0\" class=\"tagadelic level1\" rel=\"tag\">freshy</a> \n<a href=\"/english/game-0\" class=\"tagadelic level1\" rel=\"tag\">game</a> \n<a href=\"/english/git-0\" class=\"tagadelic level1\" rel=\"tag\">GIT</a> \n<a href=\"/english/github-0\" class=\"tagadelic level1\" rel=\"tag\">github</a> \n<a href=\"/english/grunt-0\" class=\"tagadelic level1\" rel=\"tag\">grunt</a> \n<a href=\"/english/html\" class=\"tagadelic level1\" rel=\"tag\">HTML</a> \n<a href=\"/english/javascript-0\" class=\"tagadelic level2\" rel=\"tag\">javascript</a> \n<a href=\"/english/jidefr-0\" class=\"tagadelic level1\" rel=\"tag\">jide.fr</a> \n<a href=\"/english/jquery\" class=\"tagadelic level1\" rel=\"tag\">jQuery</a> \n<a href=\"/english/jquery-ui\" class=\"tagadelic level2\" rel=\"tag\">jQuery UI</a> \n<a href=\"/english/lamp\" class=\"tagadelic level1\" rel=\"tag\">LAMP</a> \n<a href=\"/english/le-moteur-de-recherche-0\" class=\"tagadelic level1\" rel=\"tag\">le moteur de recherche</a> \n<a href=\"/english/less-0\" class=\"tagadelic level2\" rel=\"tag\">less</a> \n<a href=\"/english/mac-os-x-0\" class=\"tagadelic level1\" rel=\"tag\">Mac OS X</a> \n<a href=\"/english/made-in-france-0\" class=\"tagadelic level1\" rel=\"tag\">made in france</a> \n<a href=\"/english/mobile-0\" class=\"tagadelic level1\" rel=\"tag\">mobile</a> \n<a href=\"/english/mongo-db-0\" class=\"tagadelic level1\" rel=\"tag\">mongo db</a> \n<a href=\"/english/mysql-0\" class=\"tagadelic level1\" rel=\"tag\">MySQL</a> \n<a href=\"/english/nodejs-0\" class=\"tagadelic level1\" rel=\"tag\">nodejs</a> \n<a href=\"/english/openlayers\" class=\"tagadelic level1\" rel=\"tag\">Openlayers</a> \n<a href=\"/english/php-0\" class=\"tagadelic level2\" rel=\"tag\">PHP</a> \n<a href=\"/english/qt-0\" class=\"tagadelic level1\" rel=\"tag\">Qt</a> \n<a href=\"/english/queue-api-0\" class=\"tagadelic level1\" rel=\"tag\">Queue API</a> \n<a href=\"/english/ruby-0\" class=\"tagadelic level1\" rel=\"tag\">Ruby</a> \n<a href=\"/english/rules-0\" class=\"tagadelic level1\" rel=\"tag\">Rules</a> \n<a href=\"/english/vagrant\" class=\"tagadelic level1\" rel=\"tag\">Vagrant</a> \n<a href=\"/english/views\" class=\"tagadelic level1\" rel=\"tag\">Views</a> \n<a href=\"/english/windows-api-0\" class=\"tagadelic level1\" rel=\"tag\">Windows API</a> \n<a href=\"/english/wordpress\" class=\"tagadelic level3\" rel=\"tag\">wordpress</a> \n<a href=\"/english/wordpress-0\" class=\"tagadelic level6\" rel=\"tag\">wordpress</a> \n</div> </div>\n \n \n \n \n \n \n</div> \";}', created = 1524227586, expire = 1524231186, headers = '', serialized = 1 WHERE cid = 'tagadelic:block_1:output:f9d44744f2ad14e08a7fcb35fd44c428' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.154' for table 'cache_block' query: UPDATE cache_block SET data = 'a:2:{s:7:\"content\";s:3576:\"<div class=\"view view-tagadelic view-id-tagadelic view-display-id-block_1 view-dom-id-1\">\n \n \n \n <div class=\"view-content\">\n <div class=\"tagadelic_views\"><a href=\"/english/android-0\" class=\"tagadelic level1\" rel=\"tag\">android</a> \n<a href=\"/english/apache-0\" class=\"tagadelic level1\" rel=\"tag\">Apache</a> \n<a href=\"/english/automator-0\" class=\"tagadelic level1\" rel=\"tag\">Automator</a> \n<a href=\"/english/bootstrap-0\" class=\"tagadelic level3\" rel=\"tag\">bootstrap</a> \n<a href=\"/english/canal-0\" class=\"tagadelic level1\" rel=\"tag\">canal +</a> \n<a href=\"/english/command-line-0\" class=\"tagadelic level1\" rel=\"tag\">Command line</a> \n<a href=\"/english/css\" class=\"tagadelic level1\" rel=\"tag\">CSS</a> \n<a href=\"/english/css-0\" class=\"tagadelic level1\" rel=\"tag\">CSS</a> \n<a href=\"/english/customize-0\" class=\"tagadelic level1\" rel=\"tag\">customize</a> \n<a href=\"/english/drupal-0\" class=\"tagadelic level5\" rel=\"tag\">Drupal</a> \n<a href=\"/english/drupal\" class=\"tagadelic level2\" rel=\"tag\">Drupal</a> \n<a href=\"/english/dwmapi-0\" class=\"tagadelic level1\" rel=\"tag\">Dwmapi</a> \n<a href=\"/english/facebook-0\" class=\"tagadelic level1\" rel=\"tag\">Facebook</a> \n<a href=\"/english/finder-0\" class=\"tagadelic level1\" rel=\"tag\">Finder</a> \n<a href=\"/english/freshy-0\" class=\"tagadelic level1\" rel=\"tag\">freshy</a> \n<a href=\"/english/game-0\" class=\"tagadelic level1\" rel=\"tag\">game</a> \n<a href=\"/english/git-0\" class=\"tagadelic level1\" rel=\"tag\">GIT</a> \n<a href=\"/english/github-0\" class=\"tagadelic level1\" rel=\"tag\">github</a> \n<a href=\"/english/grunt-0\" class=\"tagadelic level1\" rel=\"tag\">grunt</a> \n<a href=\"/english/html\" class=\"tagadelic level1\" rel=\"tag\">HTML</a> \n<a href=\"/english/javascript-0\" class=\"tagadelic level2\" rel=\"tag\">javascript</a> \n<a href=\"/english/jidefr-0\" class=\"tagadelic level1\" rel=\"tag\">jide.fr</a> \n<a href=\"/english/jquery\" class=\"tagadelic level1\" rel=\"tag\">jQuery</a> \n<a href=\"/english/jquery-ui\" class=\"tagadelic level2\" rel=\"tag\">jQuery UI</a> \n<a href=\"/english/lamp\" class=\"tagadelic level1\" rel=\"tag\">LAMP</a> \n<a href=\"/english/le-moteur-de-recherche-0\" class=\"tagadelic level1\" rel=\"tag\">le moteur de recherche</a> \n<a href=\"/english/less-0\" class=\"tagadelic level2\" rel=\"tag\">less</a> \n<a href=\"/english/mac-os-x-0\" class=\"tagadelic level1\" rel=\"tag\">Mac OS X</a> \n<a href=\"/english/made-in-france-0\" class=\"tagadelic level1\" rel=\"tag\">made in france</a> \n<a href=\"/english/mobile-0\" class=\"tagadelic level1\" rel=\"tag\">mobile</a> \n<a href=\"/english/mongo-db-0\" class=\"tagadelic level1\" rel=\"tag\">mongo db</a> \n<a href=\"/english/mysql-0\" class=\"tagadelic level1\" rel=\"tag\">MySQL</a> \n<a href=\"/english/nodejs-0\" class=\"tagadelic level1\" rel=\"tag\">nodejs</a> \n<a href=\"/english/openlayers\" class=\"tagadelic level1\" rel=\"tag\">Openlayers</a> \n<a href=\"/english/php-0\" class=\"tagadelic level2\" rel=\"tag\">PHP</a> \n<a href=\"/english/qt-0\" class=\"tagadelic level1\" rel=\"tag\">Qt</a> \n<a href=\"/english/queue-api-0\" class=\"tagadelic level1\" rel=\"tag\">Queue API</a> \n<a href=\"/english/ruby-0\" class=\"tagadelic level1\" rel=\"tag\">Ruby</a> \n<a href=\"/english/rules-0\" class=\"tagadelic level1\" rel=\"tag\">Rules</a> \n<a href=\"/english/vagrant\" class=\"tagadelic level1\" rel=\"tag\">Vagrant</a> \n<a href=\"/english/views\" class=\"tagadelic level1\" rel=\"tag\">Views</a> \n<a href=\"/english/windows-api-0\" class=\"tagadelic level1\" rel=\"tag\">Windows API</a> \n<a href=\"/english/wordpress\" class=\"tagadelic level3\" rel=\"tag\">wordpress</a> \n<a href=\"/english/wordpress-0\" 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 = 1524227586, expire = -1, headers = '', serialized = 1 WHERE cid = 'views:tagadelic-block_1:kewl:en:http://www.jide.fr/english/migrate-from-any-drupal-version-to-7x' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.154' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Follow me : <a href=\"http://twitter.com/jidefr\">jidefr</a></p>\n', created = 1524227586, expire = 1524313986, 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.66.154' 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 = 1524227586, expire = 1524231186, headers = '', serialized = 1 WHERE cid = 'tweets:block:results:72324ccbb847e44714310307270aae76' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.154' 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:19:\"/english/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/165\";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:734:\"<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\"><em>19 weeks 5 days</em> ago</span>\n </span>\n </div>\n </div>\n \n \n \n \n \n \n</div> \";}', created = 1524227586, expire = 1524231186, headers = '', serialized = 1 WHERE cid = 'tweets:block:output:7475b0b3516412a48129b88a1bae2ce5' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.154' 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 = 1524227586, expire = -1, headers = '', serialized = 1 WHERE cid = 'disqus:disqus_recent_comments:kewl:en' in /home/jideretu/www/includes/cache.inc on line 112.

For a recent project, I had to migrate from Drupal 5 to Drupal 7. Here is how I did it without too much pain. The key steps are :

  • Export data to CSV from the original instance using Views module and a CSV output plugin.
  • Import them in the 7.x instance using Feeds.

The details :

  • On the 5.x side :
    • First, grab a copy from the 5.x site and install it locally.
    • Install views_bonus module.
    • Enable views_bonus_export. It will enable CSV export for views.
    • Create your export views. E.g. A view listing all "blog" nodes, with all needed fields.
    • Hack everything you need. Yes, just do whatever dirty hacks you need. This version of the 5.x site won't ever be used anywhere else, no one will ever blame you for killing kittens here. Need to reformat HTML output of some field ? Hack theme_views_bonus_export_csv() in views_bonus_module. Want to output Organic groups names in plain text instead of a link ? Go for og_handler_field_nodelink() in og_views.inc from go module. Feels so good to make dirty things sometimes.
    • Export each views to CSV files.
  • On the 7.x side :
    • Install feeds module. You may also need additional modules such as feeds_comment_processor, feeds_profile2_processor. Look at the feeds issue queue, there is a LOT of interesting things there which will help you get processors, patches (to keep hides kids e.g.) and tips you might need.
    • Install feeds_tamper. It modifies feeds data before it gets saved, so if hacking in 5.x was not enough, you could modify data before it is actually processed by feeds.
    • You may have to tweak feeds module a little for it to fit your needs.
    • Create feeds importers for each entity types you need to import. Adjust fields mappings.
    • I also had to create a custom import code for some pieces of content that were not handled by feeds, for example flags. PHP's fgetcsv() is your friend.
    • Import CSV files.
    • You're done !

You will probably have to test things around as I did for the process to go smoothly, but once everything is set up, things went very well.

This technique is applicable with any Drupal version, and even any source as long as you can export data to CSV.


Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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://www.jide.fr/english/migrate-from-any-drupal-version-to-7x', '', '54.161.108.58', 1524227586) in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.154' 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:430:\"UPDATE command denied to user &#039;jideretumysql&#039;@&#039;10.0.66.154&#039; for table &#039;sessions&#039;\nquery: UPDATE sessions SET uid = 0, cache = 0, hostname = &#039;54.161.108.58&#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 = 1524227586 WHERE sid = &#039;hld5g944h5bo9m1evhn9bspmg4&#039;\";s:5:\"%file\";s:39:\"/home/jideretu/www/includes/session.inc\";s:5:\"%l in /home/jideretu/www/includes/database.mysql.inc on line 135