Migrating from Movable Type to Drupal

Movable Type was my content management system (CMS) of choice in 2004. Installation and configuration was easy enough for a non-developer like me to handle, and I had a couple of reliable business partners for coding and design projects.

However, the open-source movement captured interest and attention of the development community, and Movable Type began an inexorable slide into comparative irrelevance. (Evidence at Google Trends.)

One of my clients has several Movable Type websites, and this month we’re moving them all to the very solid Drupal platform. All but one of the sites have a manageable amount of copy, making it  feasible to copy and paste the content. The last one had 181 blog posts, which demanded an automated solution.

This post illustrates how I moved the blog content from Movable Type to Drupal.

Three Methods

I found three ways to migrate the content, in decreasing order of elegance:

  • Use the new Feeds module to scrape an RSS file and publish nodes.
  • Use the Import Typepad / MoveableType module, which imports nodes in a batch from an MT export file.
  • Migrate first from Movable Type to WordPress, and then use the WordPress Import module to get the content into Drupal.

I wasn’t sure if Feeds would import the blog’s comments along with the posts, and the two-step option seemed clunky.

Down the Import Typepad / MoveableType path I went, and in the process I learned:

  • The 6.x version doesn’t work. So I installed Drupal 5.x with the 5.x version of the module, and then upgraded to the 6.x branch.
  • The module expects to import into a content type called “blog”. Any other name will prevent you from editing the nodes. For simplicity, I wiped out the other content types from the 5.x install.
  • Set up your Drupal categories in advance. Taxonomy CSV import/export worked for me.
  • Set up your users in advance, since the import module wants to map the Movable Type author to the Drupal author.
  • Tidy your markup tags and oddball ASCII characters in the export file, before you do the import.
  • Also in the export file, change PRIMARY CATEGORY: to CATEGORY:. Honestly, I don’t know if this was necessary but it took less time to do that than to type this sentence.
  • Drupal 5.x is fast, compared to my contrib-laden installs of 6.x.

With all that in place, kick off the import in your 5.x install.

You may be greeted with an “ERROR 1 State = 5″ error code at the top of the review page, and this charming screen after confirming the import:

movable_type_import_error
Yet a visit to the admin/content/node page brings relief:

movable_type_import_success

So the import does work.

Adios, Movable Type.