Drupal 5 to 6 Conversion

Part of the book: KWLUG Web Site Construction

Upgrading from Drupal 5 to 6 is a complicated task which is surprising given the relative simplicity of the web site.

Early Preparation

The existing site needs to be upgraded to the latest version of Drupal 5 and each of the modules and themes should be updated to the latest drupal 5 versions.

Having the site up to the latest Drupal 5 versions means that database upgrade scripts of Drupal and the modules will work. Some modules drop upgrade support for old versions.

A test conversion was done on another web server so that time could be spent to find issues and perform conversions as necessary. Any changes to the database were recorded because they would have to be replicated during the live cut-over.

Any changes that could be made to content ahead of time (like inappropriate references to http://drupal.kwlug.org) were removed. These changes will be carried over with the database.

Any changes to file-system files were recorded. Those files will have to be moved to the live web host during cut-over.

Cut Over

Cut over involves significant command line work unpacking Drupal and modules, creating new folders and copying new files. It also involves a fair amount of web interface work to convert configurations and repair what look like conversion problems.

At the time of cut-over the site needs to be put in maintenance mode. A backup of the web files should be taken along with a backup of the database. The upgrade will make significant changes to both and backups are the only way to return back to normal if something goes awry.

Modules should be disabled and a stock theme (like Garland) should be chosen as the default theme.

Files are moved aside (except for /files and /sites) and the new drupal files put in place. Modules should be placed in /sites/all/modules, the zen theme should be put in /sites/all/themes and the custom kwlug theme put in /sites/kwlug.org/themes. Don't forget the .htaccess file.

Once the files are unpacked in place the /drupal-6.??/sites/default/default.settings.php file should be copied to /sites/kwlug.org/settings.php and it should be updated to set the $db_url to an appropriate value and the $update_free_access to TRUE.

Then run the /upgrade.php script. This will upgrade the database files for the installed modules. Views will complain that some tables do not exist but it will succeed. This script may require running twice.

Change the settings.php script and set $uprgade_free_access back to FALSE.

Browse to /admin and enable the following modules:

  • Administration
  • Administration menu
  • CCK
  • Content
  • Fieldgroup
  • Filefield
  • ImageField
  • Node Reference
  • Number
  • Option Widgets
  • Text
  • User Reference
  • Core
  • Blog
  • Book
  • Comment
  • Contact
  • Database logging
  • Forum
  • Help
  • Menu
  • Path
  • PHP filter
  • Profile
  • Search
  • Statistics
  • Taxonomy
  • Tracker
  • Upload
  • Date/Time
  • Calendar
  • Calendar iCal
  • Date
  • Date API
  • Date timezone
  • Image
  • Image
  • ImageCache
  • ImageAPI
  • ImageAPI DG2
  • ImageMagick
  • Messaging
  • Messaging
  • Simple Mail
  • Node relationships
  • Node relativity
  • Notifications
  • Content Notification
  • Notifications
  • Notifications UI
  • Other
  • Token
  • Spam control
  • CAPTCHA
  • Image CAPTCHA
  • Views
  • Views
  • Views UI
  • Views Bonus Pack
  • Views RSS

Views Conversion

The version of views changes from 1 to 2 and with that the views must be converted. The conversion isn't perfect and several fix-ups need to be done. Also identical RSS views can be merged with the page or block view.

To convert go to /admin/build/views/tools/convert and convert the views one-at-a-time. Watch for these issues:

  • Merge RSS displays with existing views, set Row Style to "full text"
  • On views that use Daterange in the filter you will see a "broken/missing handler" listed under Filters. You need to remove this and add a suitable date filter.
  • Filters that refer to a field with a select list will show "array reference" error. Remove the filter field and re-create it.
  • Add a block display to tracker:
    • Style: HTML List
    • More link: Yes
    • items per page: 5
    • Use Pager: no
    • Remove all fields but title
    • remove "Title" title from "title" field.
  • in ffcontributions set "link to node" for title field
  • in Learning set "link to node" for title field

Menu Change

The disabled "Home" menu item in Primary links interferes with the Meetings menu. Delete the Home menu item.
Add a "Get Help" menu option after Resources, link it to the URL gethelp.

Path Changed

Add "gethelp" as a path to node/745.

CAPTCHA Configuration

In /admin/user/captcha:

  • Set default challenge type to Image
  • form_id user_register: image
  • Contact page: Image

Image CAPTCHA

Set

  • Distortion level: 3
  • Check: Smooth distortion, Add salt and pepper noise and Add line noise
  • kli>Noise level: 1

Link Operations

in http://d6.kwlug.org/admin/settings/relativity/display set Parent weight to 1, Children to 2 and Link operations to 12.

File System Configuration

in admin/settings/file-system change "File system path" to sites/kwlug.org/files

Create the sites/kwlug.org/files directory and give it suitable permissions.

Content Changes

Add "Welcome" as a title to /admin/build/block/configure/block/1
Add HTML Intro "<h2>Upcoming Meetings</h2>" to upcomingmeetings view.