# this assumes that both wordpress and drupal are in separate databases. The wordpress database is called "wordpress" and the Drupal database is called "drupalmigration" # based on scripts from: # http://www.darcynorman.net/2007/05/15/how-to-migrate-from-drupal-5-to-wordpress-2 # http://spindrop.us/2006/05/19/migrating-from-drupal-47-to-wordpress # http://www.brendanloy.com/2007/02/wordpress-21-upgrade-problems.html # first, nuke previous content in wordpress database use wordpress; delete from wp_terms; delete from wp_term_taxonomy; delete from wp_term_relationships; delete from wp_posts; delete from wp_postmeta; delete from wp_comments; # categories INSERT INTO wp_terms (term_id, name, slug) SELECT term_data.tid, name, name FROM drupalmigration.term_data where term_data.vid = 2; INSERT INTO wp_term_taxonomy (term_taxonomy_id, term_id, parent) select term_data.tid, term_data.tid, parent from drupalmigration.term_data, drupalmigration.term_hierarchy where (term_data.tid = term_hierarchy.tid) AND (term_data.vid=2); # posts INSERT INTO wp_posts (id, post_date, post_content, post_title, post_excerpt, post_name, post_modified, post_author) SELECT DISTINCT n.nid, FROM_UNIXTIME(created), body, n.title, teaser, REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '_'),'.', '_'),',', '_'),'+', '_'), FROM_UNIXTIME(changed),n.uid FROM drupalmigration.node n, drupalmigration.node_revisions r WHERE n.vid = r.vid; # category --> post relationships INSERT INTO wp_term_relationships (object_id,term_taxonomy_id) SELECT nid,tid FROM drupalmigration.term_node ; update wp_term_taxonomy set taxonomy='category'; # category count updating UPDATE `wp_term_taxonomy` SET `count` = (SELECT COUNT(`object_id`) FROM `wp_term_relationships` WHERE `wp_term_taxonomy`.`term_id` = `wp_term_relationships`.`term_taxonomy_id`); # comments INSERT INTO wp_comments (comment_post_ID, comment_date, comment_content, comment_parent, comment_author, comment_author_email, comment_author_url) SELECT nid, FROM_UNIXTIME(timestamp), comment, thread, name, mail, homepage FROM drupalmigration.comments ; # users INSERT INTO wp_users (ID, user_login, user_pass, user_nicename, user_email, user_registered, display_name) SELECT uid, name, pass, name, mail, FROM_UNIXTIME(created), name FROM drupalmigration.users WHERE uid>1; # update comments count on wp_posts table UPDATE `wp_posts` SET `comment_count` = (SELECT COUNT(`comment_post_id`) FROM `wp_comments` WHERE `wp_posts`.`id` = `wp_comments`.`comment_post_id`); # fix post slugs. first we have to remove the duplicate _____ chars, then replace that with a single - char UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_'); UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_'); UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_'); UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_'); UPDATE wp_posts set post_name = REPLACE(post_name, '_', '-');