I finally upgraded this blog to WordPress 2.1 from WordPress 2.0.7. Since wordpress plugin authors were warned of MySQL changes in advance, most of the wordpress plugins I use were upgraded. Inspired by more confidence, I went ahead to load a new wordpress version.
I took time to read the upgrade instructions very carefully, and reread it again (they have changed significantly from previous ones). I cannot emphasize this enough. WordPress 2.1 will require MySQL 4.0 database – so if you are still on a primitive MySQL, then do not upgrade.
Back up your database, Download WordPress Folder
Since back up is the most important part, I took care to back up using phpMyAdmin as well as my WordPress Database Backup plugin. I ensured I got .sql backups as full file and zip files also (much smaller and quicker to download)
Problem: The first time I downloaded the database, the file was a huge 41MB! When I tried to used phpMyAdmin to zip it, it would not work (Save a corrupt 1kb file). Perceiving that something was wrong I opened the .sql file in Wordpad to see hundreds of spam comments. I realized that that over 20000 comments were sitting in the Akismet Spam queue which I had not deleted (you never know someone comes asking for his lost comment, and I have to dig into the queue).
Solution: I deleted all Akismet blocked spam comments. Retried the phpMyAdmin backup – and the file was a small 7MB .sql file, easily compressed by .zip download to 2MB. So be sure to clean up all Akismet spam comments before backup.
Next I used my favorite FTP client (Filezilla) to download the entire WordPress folder onto my computer. That way I know exactly how my files were arranged and in case of any problem, I could just use FTP and upload them back as required.
Deactivate All Plugins
Several WordPress Plugins are still not compatible with WordPress 2.1 – So a very important step (which they strongly advise) is to deactivate all wordpress plugins. As I do this, errors start appearing on the blog. This is because my WP-Pagnavi, TLA ads, and related posts plugins whose php codes were in template files stop working.
Upgrading in Progress Notice
This is optional. Instead of exposing your visitors to all kinds of broken pages, php errors, server errors – why not let them know you are upgrading your wordpress and they can check back after half an hour (Yes! you will be done by then).
Fortunately, I host wordpress in an alternative directory, which I always advise you do too (/archives in my case). Now I can simply load a index.html file (explaining what is going on) at the root of the domain. This supersedes your index.php and replaces your domains front page. (we will delete index.html later when all is well).
Delete WordPress Files, Do not replace
Since many files have changed in this wordpress version, replacing files is not to be done. You actually need to delete the wp-admin and wp-includes folders as lot of stuff has changed. Read the instructions carefully about what is to be deleted and what is to be preserved.
I deleted these files
# All wp-* (except for wp-config.php, wp-content folder, wp-images), readme.html, wp.php, xmlrpc.php, and license.txt files in your root or wordpress folder.
# wp-admin folder
# wp-includes folder (I had no wp-includes/languages/ folder, which you should preserve)
# wp-content/cache folder
If you keep hidden files hidden (by default in FTP clients), you avoid the risk of deleting your hidden files like .htaccess file etc.
Uploading the New WordPress Version
I presume you have already downloaded the latest wordpress version. I use the zip version, unzip it and it gets neatly organized into folders.
I uploaded these files
# wp-admin folder
# wp-includes folder
# All wp-* (except for wp-config.php, wp-content folder, wp-images which I preserved), readme.html, wp.php, xmlrpc.php, and license.txt files in your root or wordpress folder.
# wp-content/themes/default folder – if you use the WordPress default theme
Upgrade the Database
Run this url
If it is hosted in an alternate directory, then use this
It will display a link to upgrade your database. You click it and after a few seconds its all done. You are ready to test your new wordpress.
Activate the WordPress plugins
Ensure that you have downloaded the plugins which are compatible with WordPress 2.1. Once they are all in place, I activated the plugins one by one. And they all went working smoothly.
Check Your Template
Some wordpress themes are not compatible yet. I checked different parts of my blog and the presentation seemed fine (though I have extensively modified the Blix theme, which they say is not compatible).
If your theme does not work, you can easily upload any compatible theme and switch to it in one click (but you need to redo all your customizations). You can read more about Template Tag and Function Changes in WordPress 2.1.
Delete the Upgrade Notice
Remember the upgrade notice we put up via index.html (if you have hosted in an alternative directory) – now delete it. Index.php will again resume as the default file and your blog is back online.
If you get stuck – visit the WordPress support forums. Enjoy and upgrade with confidence to WordPress 2.1. Its worth it!