Migrated to WordPress
First of all, apologies for any ‘planet spam’ caused the change to my feeds.
After what seems like an eternity (but is actually just over a year) I’ve switched the backend of this site from Mephisto to WordPress. The main reason for the switch was my overall dissatisfaction with Mephisto coupled with its lack of development (or a least stable releases) along with the fact that I was maintaining a Ruby on Rails production environment for one application. Mephisto frustrated me in many ways, from its inability to handle archives/pagination to not being able to accept pingbacks to not working with external clients. All of these were fixable, but I really didn’t have the patience or the time.
Here is my tale of migrating from Mephisto to WordPress, and how I achieved it.
I was also going to write my own ‘blog’ software in either Django or Rails (apparently this is the mark of true developer), but again I’ve got better things to do and with a couple of projects I’m involved with utilising WordPress it was less “eating my own dogfood” more “eating the dogfood I would be serving to others”.
As an aside, the dogfood analogy really is gross, but it works.
I initially despaired with migrating from Mephisto. Although there are a couple of scripts to migrate to it, as a fairly niche product there are zero scripts I could find to migrate from it.
So I started writing my own.
My original plan was to simply massage the data between the two databases, but with my Mephisto using PostgreSQL and WordPress being restricted to MySQL that was never going to be easy. My second plan was to dump the data out into some interim format, then inject it directly into the WordPress tables. At this point I started playing around with WordPress itself, and discovered its ability to import data from a variety of formats, including its own WordPress eXtended RSS (WXR) format - a format that isn’t too popular. My third plan was formed - I would craft a Python script that would generate a WXR file from my Mephisto database, then let WordPress handle the import for me.
Getting the data into the right format was fun, but xml.dom.minidom served me well. Importing the data proved a bit more problematic due to the fact that the import script in WordPress doesn’t do XML at all, but rather Regular Expressions. A couple of tweaks to my script and the file was ‘well formed’ as far was WordPress was concerned.
The next import problem was caused by tags and categories. These are separate in Mephisto (and so names can be duplicated), but not so in WordPress. A bit of manual cleanup was required post-import, but the Tag Managing Thing plugin made this less of a chore and let me optimise my tags and categories at the same time.
The script is by no means production ready, and is currently tailored for my preferences, but if there is enough demand I will Open Source it.
Of course no upgrade is without its problems. All permalinks and tags should continue to work, but categories have been moved into the /category/ path. Feeds should be mostly working (I’ve manually updated the two planets that use category specific feeds, and I’ll keep an eye on my stats to see if any others are being used). If you find something that is broken let me know. The other obvious difference is that my design (for those of you that don’t live in Google Reader) has gone. I’m working on a new design, but until then K2 (with some tweaks) will suffice. I’m sure you’ll cope without the ads…
Of course WordPress gives me some new toys to play with. Trackbacks now work, and I’ve enabled OpenID for those that use it (i.e. me). I’m still using Akismet for comments, but I’ve also added a captcha - I’ll see how that goes.
Related posts:
- Thy will be done: m2wp.py is released After dragging my heels for a bit, I’m finally getting...
- If you can’t find what you’re looking for… …please ask a member of staff. Although much better, my...
- WordPress 2.5 joy (and K2 woes) Version 2.5 of WordPress has been released today, and I’ve...
- Wordpress 2.7 Upgraded to Wordpress 2.7. Completely painless upgrade process. EOM. SHARETHIS.addEntry({...
- 24 hours with Ubuntu 8.10 (Intrepid Ibex) Around this time yesterday I was most of the way...
Related posts brought to you by Yet Another Related Posts Plugin.
look good
21 Feb 2008 11:45 pm
Just don’t look under the hood. Then you are fine.
22 Feb 2008 12:33 am
Perfect timing! I will also migrate from Mephisto to WordPress, mainly because it doesn’t have the “older posts” link, doesn’t do tags properly, isn’t developed and sometimes crashes for no apparent reason (and I have to go down into the source code and add a require “something” somewhere).
So, where’s that script of yours, I’d like to give it a try :).
22 Feb 2008 10:09 am
Suggestion, borne of my own bitter experience: open source the script now, despite its nature as a hack and despite it being you-specific. Publishing stuff to your website is the best form of backup I know. Otherwise, two years from now someone will say, can I have that script? and you’ll say, er, no, I’ve rebuilt my machine three times since then…
25 Feb 2008 9:30 am
Despite every ‘web2.0′ language/framework having a ‘create a blog application in 5 minutes’ example, it’s amusing to see even a developer default to Wordpress, which is still written for php4
David
19 Mar 2008 5:52 pm
I am also migrating from Mephisto, because it is apparently unsupported.
Can you post the Python code somewhere, or sent it? Thanks!
20 Mar 2008 4:45 pm
I agree with Stuart; just put it out there now and let people hack it to their needs. Overtime it will become a production ready script for the masses (or the masses will have several options).
I for one would love to see/use it. I’ve been on Mephisto for a while with the intention of diving deeper into Ruby. No such luck though. If you have it, I would like it.
Thanks!
21 Mar 2008 5:48 pm
Huh… that’s funny. I’m thinking of going the other way (from Wordpress to Mephisto) and came across this because I was looking for migration scripts in the other direction.
My goals are a bit different. I’m much better on Rails than I am on php and like the way Mephisto works on the backend. Wordpress has run my blog quite faithfully for nearly 4 years now but the way it’s grown and the way it works has been making me look at mephisto a lot more (though concerned about the support for xml-rpc posting and slow “dev” updates). I’m also just much happier having ruby and rails than php, but YMMV.
any chance of posting that script ? I imagine I can get it to work backwards… =]
25 Mar 2008 5:38 am
Daryl, mephisto should come with a conversion script (using rake it looks like). Have a look at vendors/plugins/mephisto_converters
25 Mar 2008 4:31 pm
[...] agreed with Stuart that it should be released regardless of demand, but it really did need some cleaning up [...]