How to kill WordPress

(Other than mis-capitalising its ‘P’, that is.)

I have had a wordpress site (see, I’m failing even to give it a capital ‘W’ now) for many years, since about… umm… November 3rd 2003 at 16:01:23 or thereabouts. I’m finally sick of it. It’s grown and grown and is trying so hard to be everything to every blogger out there, that I don’t know where I stand with it. It used to be fun, y’know?! A codebase I could fiddle with, and make do whatever I wanted. Now, I just find it very good for doing things that I don’t need to do.

So, I’m dumping it. No more WordPress.

Now the question is: how to migrate away from it? The important thing (although, really, I’m not actually that fussed about it; it’s more a pride thing — a web geek hardly wants to go against Tim BL’s advice, does he?) is to preserve URIs, at least the important ones.

So I started by making a final backup — all files, WP core included, and the database dump — and moving that tarball out of my usual backup rotation. So I’ve got a snapshot of the site, that will never fall off the far end of my backups. You never know (to quote Duane Dibbley).

Then, I inserted all of the WP posts into my new system’s database::

INSERT INTO journal_entries (id, title, date_and_time, entry_text)
  SELECT id+1000, post_title, post_date, post_content
    FROM wp_posts
    WHERE post_type = 'post' AND post_status = 'publish'
    ORDER BY post_date ASC

The +1000 on the ID was to ensure that I could refer to the new IDs of the imported posts in the next section, the redirections (there were fewer than 1000 records already in the journal_entries table)::

SELECT CONCAT(
    'Redirect permanent /',
    YEAR(post_date),'/',
    LPAD(MONTH(post_date),2,'0'),'/',
    LPAD(DAY(post_date),2,'0'),'/',
    post_name,' ',
    'http://samwilson.id.au/journal/view/',
    id+1000
  ) AS redirection
  FROM wp_posts
    WHERE post_type = 'post' AND post_status = 'publish'
    ORDER BY post_date ASC

And I dumped all that into .htaccess.