As Drupal 6 is the reality for a few months already and its main contributed modules are ready for the 6 version, I decided to upgrade my main websites to the Drupal 6. Here is my experience. My biggest website is Czech www.maxiorel.cz with its 2000 visitors per day. It has an English clone running at www.maxiorel.com. As the Maxiorel.com is a smaller, I chose it as the first to migrate. I already migrated some websites like www.anastacia.cz and running some websites (www.backuphowto.info and www.photohowto.info) from their beginning. But the Maxiorel.com should be my first bigger Drupal 6 migration.
Drupal Upgrade Status
If you are running Drupal 5 powered website, you should check the presence of your modules for the newer Drupal version. I highly recommend Upgrade Status module. It will let you know if the modules are available for the higher Drupal version:
Click on the links, go to the Drupal’s and module’s home homepages and download the new version for Drupal 6. Prepare them to your disk now. As you can see, Maxiorel.com had a few modules which didn’t support Drupal 6. Simply, I remove them – the website wasn’t depended on them.
Next, every action like Drupal upgrade should start with database and file backup. My hosting provider, HostGator, has a nice tool – cPanel. Database backup using this tool is a matter of three clicks. I downloaded the files using the FTP and switched the web to the maintenance mode.
Prepare the new files
I recommend to prepare the whole structure of new files on your disk. Unpack the new Drupal 6 and copy the modules to the /sites/all/modules folder. Then copy the /sites/default/default.settings.php file to the settings.php. Edit the database connection string and paste here the string from the backed up file.
Copy the new files to the FTP
Now, there is the time to copy the new files to the web. Make you sure the web is running in maintenance mode and you are logged in as the user with ID 1 (usually website admin). Remove the old files (beware of deletion of your themes and files folder!!!) and copy the new ones.
I uploaded the files as one large ZIP file and extracted it using the HostGator and its cPanel File manager. It was much more faster than copying the files via FTP directly.
As soon as you will have the new files uploaded, go to the update.php URL and perform the common update process. Don’t be surprised. The new update.php is a little bit different from the Drupal 5 version.
Theming system in Drupal 6 needs a few modification of your templates. Go to your theme folder and provide the themename.info file. You can copy the default from the /themes/garland folder, rename it and make a necessary modification. Until this step your new website will be without theme.
After you will provide the .info file it may happen that you will get an error. It could be caused by many reasons. Usually you should go to the template.php file in your theme folder and check the problematic lines. I could help you more with it, but if you would like to know, I had the similar problem. I had to make changes in phptemplate_menu_item() function and correct the function to display the menu link in page.tpl.php. After this two changes I was able to see the administration (however with disabled blocks – you have to define regions in the template’s info file).
You should note, that the maintenance information is displayed for the users and visitors, no matter if you have a problem in your template code.
The next problem was my contemplate code, TinyMCE and ImageField module – it didn’t update well. But after some changes the website is live and seems to be working well. Do you use Drupal 6 already?