Just the other day I was talking about WordPress 2.1 and how excited I was about it. Yeah, I'm not so excited anymore. 2.1 has some nice new features, like new plugin hooks and overhauls to the page and link systems. It also comes along with a handy new feature to export your blog to a WXR-XML file.
The biggest thing I was looking forward to was the fact that 2.1 is essentially a complete rewrite. Nearly all of the code has been rewritten and optimized to be cleaner, faster and more efficient. And it mostly is. Gone are things like the cumbersome, monolithic functions.php. In their place are leaner, more logical files.
The only problem is that 2.1 kind of sucks. Or at least for me, and at least right now. After using development builds of 2.1 on a test blog since July, I was chomping at the bit to get the new version deployed here. So last week I installed WP2.1 beta 2 on this blog. Wow, was that a mistake.
Within a day, I'd found several bugs and plugin incompatibilities. The bugs were mostly pretty minor, but the plugin problems just about killed me. Two plugins I consider absolutely crucial no longer worked worth a damn. Both of these plugins are in active development by very smart people, but 2.1 killed them anyway. Although, to be fair, one of the plugins probably works perfectly and instead the problem was with my own setup. After all, I've been using this blog for a year. That's a lot of plugins running through my database with dirty feet.
But not anymore. If you visited on Friday or part of Saturday, you were probably greeted by a "down for maintenance" message. I was yanking 2.1 out by it's roots so I could go back to a version that did all the things I wanted it to do. Incidentally, reverting like that is not something you're supposed to be able to do. The WordPress team makes upgrades easy as pie, but downgrades? Pfft. Why would you ever want to do that?
I generally agree with the idea of not making any kind of downgrade path. Developers have a general interest in moving their user base forward, not backward. But it sure did make what I wanted to do a big pain in the ass. Sometimes, installing a new version of WP will make changes to the database structure. That's the step that makes downgrades such a pain in the ass. 2.1, with it's radical changes under the hood, is definitely one of those upgrades.
I make database backups regularly (and you do too… right?), so it would have been simple to restore a pre-2.1 backup, delete 2.1 and install an older version. But that wouldn't necessarily fix any database issues that might have been exacerbating the problems I was having with 2.1. I'll probably end up upgrading eventually, so as long as I'm up to elbows now, I might as well clean house on the DB too. So database backups weren't much good to me.
I used the handy new WXR-XML export to download a backup of my blog and then used a plugin to import that XML. But there are a few issues with this. First, the XML export isn't configurable. You get what you get, and what you get kind of sucks. The exporter snags posts, comments and categories. It doesn't export your options, registered users, links, custom plugin tables, etc. That's ten shades of suck.
Second, the XML files are HUGE. When I use Scott Merrill's database backup plugin (the one bundled with WordPress), my download file is about 3MB in size for the entire database. The XML backup, with just three database tables, clocks in at a whopping 13MB. And this is the new feature intended to replace Scott's plugin, which by the way is no longer part of the WP core. WP2.1 does not include wp-db-backup, so if you intend to keep it (and you really should), you'll have to make sure you hang on to your older versions.
Even the parts the XML backup keeps are woefully incomplete. The process of exporting for 2.1 and importing to an older version stripped a lot of things. All of my tags and post layouts were lost. The tags I could do without because one of the troublesome plugins was UTW, but the post layouts? That's a pain.
Sigh. Oh well.
Another pain in the ass is that post and comment ids were lost. I kind of like that the post ids were lost because now my ids are numbered more or less chronologically, rather than the hodge podge I had before. I brought in a lot of archives from previous blogs after this blog was well underway, so I had things like post #548 being ten months older than post #547. And since I use permalinks, this isn't a big deal for me. For the most part, people have no way of knowing which post is #548. However, if I wasn't using permalinks, if I had the default cruft-based structure like /?p=548, all of my links would suddenly point to the wrong posts. This is similar to what happened to my comment ids.
On nearly every theme, including mine, the permalink to any given comment is defined by the comment id. So every link I ever made to a comment needed to be manually repaired. Fortunately, there were only about 40 of them throughout the entire blog. The thing that really kills me about this is that I pointed out this shortcoming to the dev team months ago. I had the misfortune of voicing my concern during the middle of a cat fight and I was essentially ignored.
The export/import process also stripped away all my post slugs. All slugs were automatically regenerated from the post titles. Which, if you're like some, could be a significant problem. I don't tweak post slugs often, but I have retitled posts (like adding "Updated" to signify new content), which breaks the permalinks for those posts.
Anyway, after a lot of grumbling and cursing, I'm back on stable footing again. Through a combination of SQL backups and XML exports, everything is running smoothly and all my data is back in place. Well, most of my data. It'll take ages to tag everything again and replace all my post formatting. But I'd say the effort is worth it if it leaves me with what I really want.
100 things about me
7. I'm a little OCD about a few things. My blog is one of them. Those few days I used WP2.1 beta drove me absolutely batty. I felt like my blog was broken, even though it really wasn't. There were some things that didn't work, but possibly I was the only one to notice. All the basic functionality was just fine. Pages loaded without error messages, people could read and comment and the site feed worked fine. That's the essence, the core functionality, of any blog.
But the little things were making me crazy. I knew they were there and I was bitchy and irritable because of it. At least now it's fixed and I'm not freaking out about it anymore.
Another thing I'm a little obsessive about is our DVD library. We've got over 700 DVDs… and they're alphabetized. With each new purchase, I rearrange everything to accommodate the new addition.
So maybe I'm a little crazy. At least now, way down here at the end, you understand the post title.