I think I have all the steps figured out now, so I should probably document them for others:
- Install WordPress 2.x. Yes, 2.x. You can download older versions here. I used 2.9.1-RC1 by accident. It worked, but I would use 2.9.2 if I was doing it over and paying attention.
- Grab the import script from Snowulf. Make sure you grab the latest version (1.5) and the readme file.
- Follow the instructions in the readme to clear out the database. The actual SQL command is “delete from <tablename>;” (no quotes.) When you get to the wp_terms table you want to do “delete from wp_terms where term_id = 2;”
- Copy the script into the import directory and run it according to the instructions. I had about 930 posts and it took maybe two minutes.
- Make sure you follow the instructions in the readme about running the post-migration SQL commands. I missed these steps the first time and that may have been part of my issues.
- Don’t forget to open a category and save it to fix the hierarchy.
- Upgrade to the latest WordPress. Current version as of this writing was 3.5 and it was as simple as clicking the “upgrade” link in the admin panel.
- Since 2.9.x creates an admin user, your imported users won’t have the correct privileges set, so you will need to go change them.
If you want to redirect the old blog to the new one, there is another post over at Snowulf about how to do that.
The piece that hung me up there was that Serendipity installed an .htaccess file that specifically turned off mod_rewrite! So I dropped all the rewrite rules into that file and it worked great!
I did end up adding a rule at the bottom to redirect the front page, since both old and new blogs were not located at the root of the site:
#And then lets redirect the front page too
RewriteRule ^$ /<new_location>/ [R=301,L]
Thanks to the Jo(h)ns over at Snowulf for the script and info!