1. Great stuff, just what I need 😀 I really need to move dslrblog over to wordpress, drupal is hindering rather than helping me over there 🙁

  2. Ibrahim Muhammad

    Thanks, this works pretty well, only one problem. On the main page it says “no comments” even for posts that have comments. How would you fix that.

  3. @Lloyd: Looks like my spam blocker decided not to like you for some reason. Sorry! I’ve rescued your comment on the Ubuntu post. I have no idea why it bumped you to wp-comments-post.php with a 404 error, though. Bizarre… Sorry about that.

  4. Hello darcy. I’m enhancing and unifying some other migration scripts, and putting a tutorial together along the way. the final detail to resolve is permalinks. With drupal I had my “clean URLs” with underscores from the root of my URL e.g. site.com/article_is_here. I can update WordPress config to work in this fashion using the first link, but I can’t get permalinks to work using the info at the second link. In your case you said you did a lot of copying. Could you expand on that a bit or suggest the best way to avoid 404s for all my existing Google cache? Thanks!


  5. Hi there! I had some trouble when trying to use this script on my Drupal 5 blog (currently) to WordPress 2.3. When I tried to use the script, this error kept popping up: “#1146 – Table ‘wordpress.wp_categories’ doesn’t exist”. And it is correct. I am assuming this is because I am using the latest version of WordPress, which is V.2.3.

    I will try installing WordPress V.2 and see what happens! I will keep you updated. 🙂

  6. Whew! After some tweaking here and there (mostly because of my hosting – it had nothing to do with your wonderful script!), I finally got it to work. You saved me an incredible amount of time. Thank you so much!

  7. one should note – this works splendidly up to wordpress 2.2, but in 2.3 they seem to have done away with “categories” and now have a “term” and “taxonomy” structure. this means that if you follow all these steps with a wordpress 2.3 database, you get everything except categories assigned properly. (you’ll get the same error that Binary Blonde got, above — this script tries to delete from a table, then insert into a table, that doesn’t exist)

    an easy solution is to instead install wordpress 2.2, import your data, then upgrade wordpress 2.2 to 2.3. if you cannot do that (my host has a “one click install” for 2.3) what i did instead was make my 2.3 database *look* like a 2.2 database again, import the data, then use wordpress’ wp-admin/upgrade.php page to move the database from 2.2 to 2.3.

    even with this fiddling, you saved me oodles and oodles of time. thanks!

  8. Drew, it’s not a comment on the quality of Drupal – I use it on nearly every project I work on – but just that it makes sense to choose the right tool for the job. Drupal _can_ do blogging properly, if you spend some time configuring and tweaking it. WordPress _can_ do websites, if you spend some time tweaking. But, if you use each tool for the tasks they excel at, you’ll wind up with Drupal powering high-end dynamic websites, and WordPress running a blog. They’re both awesome bundles of code, but they are best applied in their own respective areas of focus.

    • D,

      I’ve heard the “right tool for the right job” comment a number of times, and all I have to say in return is, you’ll have to convince me (and I’ve seen no one, who seems to have a real argument).

      The way I see it– moving from Drupal to WordPress is like moving from a Saturn to a Yugo. Except that it’s worse.

      Yes, Drupal is not auto-configured to be a blogging platform– and perhaps there would be some value, in having a “blogging release” for Drupal. However, — it’s just not that hard. What, specifically, do you get from WP that you don’t get in Drupal (given that the WP backend is quite a bit better in UI/usability, versus D5?). My feeling is– once you’re stuck in WP– it’s like a Friday night in Des Moines– the limits (user accounts; comments; etc) are so great, you don’t even know what you’re missing.

      Under the hood– under the hood, WP is just a hacked mess with no architectural consistency. Drupal’s modular architecture, with a hooks/callback system, as well as active community review in a central archive– all of this seems to me miles ahead of the WP system, where hundreds of contributors maintain hacks/modules that adhere to no coding standards, community or otherwise.

      If you want to have anything or do anything in and with WordPress, other than a rather plain vanilla “blog” of posts, one after another… well good luck. And if you think “a blog is all I want,” well, you should get out of Des Moines.

      • Way to ignore how the two apps work. I’ve lived in both for years now. I’m not some punk kid farting around with blogging, getting frustrated, and running to Blogspot or something. I’ve spent a fair bit of time actually doing this stuff.

        They are different – both subtly and not so subtly. WordPress rocks for blogging. Drupal rocks for websites. There is overlap, but that’s where there strengths are.

        and I’ve never been to Des Moines.

        • Well, I see you have a quick temper there. I have to wonder if you have an argument to go with it. Next thing I know, you’ll tell me how you programmed on the VAX.

          WordPress seems OK for blogging– if your idea of blogging is something like, “write posts that are nothing but a spew of my own opinion,” and “have people leave random comments.” Fine. (It also has some nice AJAX UI features). But as soon as you want to do anything else– say, work collectively with multiple authors, or present materials in another or more complex fashion- using WordPress is like hitting a brick wall. If you actually _need_ to do anything else, say for business reasons, then you’re rather stuck.

          Of course, like the social scene in Des Moines, (the phrase is “nothing as dead as a Friday night in Des Moines,”), there’s more to the world than blogging with WP. (Of course, like the residents of Des Moines, many bloggers have no idea!). WordPress, like Des Moines, tends to enforce its own narrow boundaries and narrow-minded self-satisfaction with what one has.

          I guess from the above, that you call “everything else” a “website.” (I though a blog was a website, last I checked in the dictionary). But whatever. Your attitude speaks for itself (“I ain’t some kid…”). Once again, if you have something more to say, some detail, other than the old “best tool for the job,” with no concrete, detailed substantiation of why and when and in what situation WP is better…

          • Hey Ken,
            I heard Drupal is really good for coming soon placeholders on your “website.” Fine work, seems like you are putting all those fancy Drupal features to the test 🙂

          • I’m not sure how you saw a quick temper there. All I was trying to say is that the post wasn’t because of some rash or half-baked opinion, that I’ve used both apps in depth for years. That is all.

            I’m not going to debate definitions of blogging. That’s as pointless as feeding trolls.

            By “website” (above), I was meaning something like “complicated, department- or institution- level web presences, managed by teams of people, and extended to provide functionality that is used to actually run an organization.” Drupal rocks at that. I use it all the time for that.

            But, for a smaller scale, simple publishing setup, wordpress just makes more sense. To me. Yes, I know wordpress can do much more than simple blogging (just as drupal can do much more than “websites”).

            Maybe I’ll book a trip to Iowa to see what the fuss is about.

          • D,

            How fast can you get some kind of properly threaded comments in here (I can’t even tell what “reply” I’m supposed to hit, so I’m hitting the nearest one).

            I understand your argument, and I’m saying, I see it all the time and I’m just not sure it’s true. Yeah, sure, WordPress looks slick and sweet– especially if you’re just starting out. It’s sort of like a Porsche body, with a Honda engine inside.

            My counterpoints, then:

            1) I’ve never seen this argument expanded, in much detail. Cite a use case; make the argument.

            2) I tend to think that WP (along with being rather underpowered and poorly made) tends to limit horizons. Have I used WP? Sure– and I dislike it every time. (You just can’t do threaded comments “right”– without a lot of effort, for instance, though the newest WP has a much better version… if, and only if, you have a theme that hasn’t hacked away at the comments layer).

            Drupal isn’t perfect, but most of this is solved “out of the box.”

            • Looks like that may be a bug, either in the theme or WP’s comment threading. Annoying. It happens.

              I’m not going to try to sell wordpress. you’ve tried it, and it doesn’t work for you. that’s fine – use a tool you’re comfortable with.

              Really, it comes down to what you’re comfortable with. Neither is perfect. Neither is complete. They don’t have to be. Either app can be convinced to do nearly anything, with little or no code hacking involved. That’s the beauty of it.

        • Hey Jim,

          Just cleared the DB on that site and started again– am actually using it, as the base for a WP to Drupal conversion (thus you find me here).

          What would you like me to show you? (I’ve worked on about 100 Drupal sites in the past 18 months). http://dev.flamingorecordings.com/ is one of my favorites– part of a multisite install– lots of media & customization options, though I think the standard forums are kind of lame (client had *some* budget limitations).



  9. Thanks a lot for the MySQL Sheet. I was doing the reverse process (WordPress to Drupal) and I couldn’t solve the node types. A simple database replacement and -woooo – it runs. Things could be so easy…

  10. ChickenMoo

    Thanks for making this page
    My Conversion is Drupal 5.2 to WP wordpress-2.0.4 old version downloaded only for conversion.

    the script works good except…..

    If you have many categories in Drupal like
    – State – state names


    Business – State Names

    It will choke a bit and shoot everything into uncatagorized

    AND for people that use CCK and Address Fields
    that content is not stored in the normal area of content

    So if like me you have lots of businesses listed on pages using special CCK fields
    The script will make the page blank and you will have to manualy copy the info

    All in all though you saved me a MRI and Brain Aneurysm :o)

  11. Thanks for this guide it really helped in the migration process with our corporate blog. We had a little bit of hangups in the process but overall it was a great success! I’m bookmarking this page if I ever need it again ~ Cheers Jason

  12. Has anyone yet modified this for a Drupal5->WP 2.5.x Migration? This should be quite different due to the new term-stuff in WP?

  13. Hi , I’d like to migrate my old drupal 5 gallery content to my WordPress gallery (which is actually a WP Blog with images/videos as seperate posts).any tips i should follow?thanks!

  14. While I have not done this for WP 2.5.1 directly, I don’t think the changes to the SQL script would be that hard to make. I may look at it later, but I still have more work to do on the site I needed to convert from Drupal 5 to WordPress.

    I installed WP 2.2, then made some changes to the SQL script, because the site I’m converting has many contributors, and on my first conversion attempt, this script didn’t do anything to import users, no names, no logins, no passwords. I had to add that info into the SQL script.

    Another mod I had to make was to accomodate how database users are handled in Plesk. There’s no easy way to give a single mysql user access to multiple databases in Plesk, and the workaround requires root and/or shell access. It was easier for me to do a mysqldump of the Drupal database and import everything into my new WP database… none of the table names overlapped, so that seemed to be the simple and obvious workaround.

    So I imported the Drupal db tables into my WP db, then changed the script to not refer to external databases, and the script ran like a charm. It brought my users over, kept their same passwords, and their ownership of various articles. Once that was done, I upgraded WP from 2.2 to 2.5.1, and now the new site is running just fine, and all it needs is some cleanup to work in my new template.

    Once I finish some more individual tweaking to take advantage of the new magazine-style WordPress template I’m using, I’ll just drop the Drupal tables from my WP db, and be done with it.

    I may take another look at the SQL script later, because there is one other Drupal site that needs to be converted, and I’d like to avoid the “instal WP 2.2 / Upgrade to WP 2.5” step, if I can.

  15. I too am looking for a way to migrate a Drupal 5.3 installation into WordPress 2.5.1 or 2.6 depending on timing. I have yet to come across anything that would make this remotely feasible to do on my own. No scripts or anything to move to a newer version of WordPress.

    So this comment is for you Dnorman. I write for a big named website who has been using drupal since 2005 and we now want to move to WordPress but are finding ourselves facing a huge brick wall. It looks like you have experience migrating things over between drupal and WordPress and I’d like to know if you would talk to me off of the blog either through email or skype about a possible project for you or at least, explain what is possible and what is not possible in terms of migration.

    Looking forward to hearing from you.

  16. Thanks a lot for the MySQL Sheet. I was doing the reverse process (WordPress to Drupal) and I couldn’t solve the node types. A simple database replacement and -woooo – it runs. Things could be so easy…

  17. Samantha

    Anyone know if this works for Drupal 5 to current version of WP? Am also wondering if anyone has had problems migrating content due to Drupal modules (I’m using a blog module for posts).

  18. AlbertC

    Hi, I’m trying to use this script for Drupal 5 to WP 2.6.3 and I got the following error:

    crida SQL:

    DELETE FROM wp_categories;

    MySQL diu:
    #1146 – Table ‘MYDB_wordpress.wp_categories’ doesn’t exist

    I guess the same will happen with the wp_post2cat table referenced in the script.

    Could anyone provide some assistance in adapting the script to WP2.6.3?


  19. The SQL script doesn’t seem to work with WordPress 2.6, like AlbertC mentioned above. It also doesn’t convert Drupal node revisions. (WordPress supports post revisions since version 2.6.)

  20. A few months ago I updated this script and migrated my site from
    Drupal 5.9 to WP 2.6. My inelegant hack of D’Arcy’s excellent
    script worked, but I couldn’t get the categories to transfer
    properly, so I just did those manually. Posts and comments came
    across fine, though. If you’re facing a similar transition and
    don’t mind that limitation, feel free to try my version
    (http://dovdox.com/content/archives/135). Standard disclaimers

  21. It depends. It could take a few minutes, with an updated version of the script, or it could take days. And is your name really “Drupal Hosting”? They do have some odd names in Belgium. Sadly, your comment smells a bit spammy.

  22. The SQL script doesn’t seem to work with WordPress 2.6, like AlbertC mentioned above. It also doesn’t convert Drupal node revisions. (WordPress supports post revisions since version 2.6.)

  23. Thanks for the script! I managed to transfer most of my posts and comments from my old drupal 5 site to wordpress effortlessly. I had neglected my drupal site mostly because of it’s clunkiness, it feels as if I take a lot of time to do very simple things.

  24. The SQL script doesn’t seem to work with WordPress 2.7, like AlbertC mentioned above. It also doesn’t convert Drupal node revisions. (WordPress supports post revisions since version 2.7.)

  25. Web Tasarım

    Thanks for the script! I managed to transfer most of my posts and comments from my old drupal 5 site to wordpress effortlessly. I had neglected my drupal site mostly because of it’s clunkiness, it feels as if I take a lot of time to do very simple things.

  26. Hello. I found this reference on URL rewriting and it seems to have enough examples for me to apply to my situation. If you have any other good ones, please drop me a line. Thanks.

    • the instructions are now quite out of date – they might get you pointed in the right direction, but will need tweaking to work with current versions of Drupal and WordPress…

  27. Thanks for writing this article. It was an immense help when transferring an old drupal database I had over to my WordPress site. You are a nice person for that. Thumbs up;-)

  28. […] There have been lots of changes taking place here at EmergingTechs.com. The first major change being that I recently switched blogging platforms. The site was originally built on Drupal, which I love, but due to the amount of upkeep it required as well as some other issues, I decided to switch to WordPress. This was no easy task and in doing so, I lost all of the tags and categories related to each post.  I am still working through all of this but will hopefully have all of my posts back to normal very soon.  If you would like to know how I was able to migrate from Drupal to WordPress check out Darcy Norman’s article on How to Migrate from Drupal 5 to WordPress 2. […]

  29. Stipto

    Great tutorial.
    But my url’s didn’t come along cleanly. Special characters remain in the slug, so you get this/kind/of/url or this-;-kind. Pretty odd.

    Does anyone know of a way to clean up all these url’s? The location of the bad url’s in the WP database is the post_name field in wp_posts.
    I could use a query to replace all special characters with a dash, but that doesn’t ensure the same link structure as in Drupal.

    What I could also do is a query to fill the post_name field with the url’s from the Drupal database. The ID’s of the article would be the reference as to what url would come where.

    Does anyone have a query that would point me into the right direction? Would be eternally grateful!

Comments are closed.