Thingy Ma Jig finally moved to Drupal 5

It's taken me long enough to get around to, but finally Thingy Ma Jig has been upgraded to the latest and greatest in all things Drupal.

All in all, I'd say it was a fairly (and surprisingly) painless experience. There were a few minor glitches along the way though…

The process overview…

To start with, I did the recommended procedure of disabling all modules and putting the site into offline mode. Summary; Easy!

I downloaded Drupal 5.1 into a seperate folder and changed my VHost file to point at the new folder. I also downloaded (into a separate folder) a copy of all the modules I needed that were branched for Drupal 5. I then symlinked these modules into the drupal-5.1/modules folder. This is a tip I picked up from Robert Douglass; it makes minor upgrades of Drupal core much easier as you can just download the new version, extract it and re-symlink your modules into it.

I restarted Apache and set my browser to to see what the damage was… Which, in this case, was a white screen of death. Bugger!

I investigated a little to find out that the problem was being caused by my settings.php file in the sites folder which I'd brought across. Eventually I gave up with it and moved the theme out of the site folder and into the Drupal themes folder and, finally, deleting the site specific folder. This forced Drupal into using the default site which it seems much more happy with. I'd be interested if anyone has any ideas why that didn't work!

I refreshed the page and found that Drupal now wanted me to reconnect to the database. Perfect!

After doing this, I ran the upgrade script which did a few database tweaks to bring the database up to Drupal 5 level. Next, I re-enabled the modules I needed (this took a few passes as I ended up forgetting a few the first time and second time!). Just after doing this Drupal told me that I needed to run the update script as my modules had been updated. This all went fine. Summary: Not too bad - fairly easy.

Finally I just mopped up around the edges and fixed a few minor errors - such as a call in the template.php to the old Drupal 4.7 module_exist which has now been replaces with module_exists. The one final issue which took a little while to fix was with the Devel Module for Drupal 5. This is a documented issue which claims to be fixed in the latest release. I fixed it (in the end) by wrapping a php function (function_exists) around the entire contents of devel_init().

The conclusion…

I am very surprised - in a good way - at how easy it was to upgrade to Drupal 5! There ended up being far less than 1 hour down time and the site itself is (as far as I'm aware) functioning better than ever!

Thanks to everyone at the Drupal team for making this a fantastic release. I promise to upgrade to Drupal 6 as soon as it's released!