Drupal Upgrade Plan 2008

Upgrading the OSGeo Drupal CMS is a complicated task further complicated by the use of multi-site configuration. To upgrade from current 4.7.x to the newest 5.3 version the following steps should be taken (doubles as a check list):

= Preliminary tasks =

DNS Changes

 * 1) create entry CNAME dev.osgeo.net test.osgeo.net.
 * 2) create entry CNAME edu.osgeo.net test.osgeo.net.
 * 3) create entry CNAME fdo-test.osgeo.net test.osgeo.net.
 * 4) create entry CNAME mapbender-test.osgeo.net test.osgeo.net.
 * 5) create entry CNAME mapguide-test.osgeo.net test.osgeo.net.

osgeo1 server tasks

 * 1) Make a script to remove write access. This script shall alter the permission table to take away all write and admin access from all roles. (The user 1 (admin) will still have write access).

osgeo2 server tasks
= Actual Upgrade sequence =
 * 1) download Drupal 4.7.8
 * 2) Download Drupal 5.3 and modules:
 * 3) * basicevent
 * 4) * blog
 * 5) * captcha
 * 6) * content (CCK)
 * 7) ** date
 * 8) ** imagefield
 * 9) ** number
 * 10) ** link
 * 11) ** optionwidgets
 * 12) ** text
 * 13) * diff
 * 14) * event
 * 15) * feedback
 * 16) * help
 * 17) * image
 * 18) ** image_gallery
 * 19) * insert_block
 * 20) * ldapauth
 * 21) ** ldapdata
 * 22) ** ldapgroups
 * 23) * locale
 * 24) ** localizer
 * 25) *** localizerblock
 * 26) *** localizermenu
 * 27) *** localizernode
 * 28) *** localizertaxonomy
 * 29) *** localizeruser
 * 30) *** localizerviews
 * 31) * menu
 * 32) * page
 * 33) * path
 * 34) * path_image
 * 35) * pearwiki_filter
 * 36) * profile
 * 37) * recent_changes
 * 38) * search
 * 39) * statistics
 * 40) * story
 * 41) * syndication
 * 42) * taxonomy
 * 43) * tinymce
 * 44) ** imce
 * 45) * upload
 * 46) * views
 * 47) ** views_rss
 * 48) ** views_theme_wizard
 * 49) ** views_ui
 * 50) ** webfm
 * 51) create new directory structure
 * 52) * /var/www/drupal-5.3 (extracted from the tarball)
 * 53) * /var/www/drupal (symlnk to above)
 * 54) * /var/www/osgeo (symlink contents of drupal here)
 * 55) ** /var/www/osgeo/files
 * 56) * /var/www/fdo (like osgeo)
 * 57) * /var/www/mapguide
 * 58) * /var/www/mapbender
 * 59) Build a new osgeo theme, visually the same as the old theme. Based on some 5.3 theme engine.


 * 1) Make a Backup of all 4 Drupal databases and the files.
 * 2) Make all Drupal sites read-only by taking away write access (run a script)
 * 3) Extract osgeo1 files to /var/www/drupal
 * 4) Create a new databases for the sites
 * 5) * drupal_osgeo
 * 6) * drupal_fdo
 * 7) * drupal_mapguide
 * 8) * drupal_mapbender
 * 9) Move old drupal test.osgeo.net to run on dev.osgeo.net
 * 10) Add dev.osgeo.conf to Apache
 * 11) Point osgeo.conf to /var/www/drupal
 * 12) Point fdo.conf to /var/www/drupal
 * 13) Point mapguide.conf to /var/www/drupal
 * 14) Point mapbender.conf to /var/www/drupal
 * 15) Upgrade Drupal to 4.7.8
 * 16) Untar drupal-4.7.8 to /var/www/drupal-4.7.8
 * 17) Log in as 'admin' to osgeo site
 * 18) Log in as 'admin' to fdo site
 * 19) Log in as 'admin' to mapguide site
 * 20) Log in as 'admin' to mapbender site
 * 21) Disable all non-core modules on osgeo (with mysql update) [see below]
 * 22) Disable all non-core modules on fdo (with mysql update) [see below]
 * 23) Disable all non-core modules on mapguide (with mysql update) [see below]
 * 24) Disable all non-core modules on mapbender (with mysql update) [see below]
 * 25) Switch to bluemarine theme (Drupal standard) on osgeo (with mysql update) [see below]
 * 26) Switch to bluemarine theme (Drupal standard) on fdo (with mysql update) [see below]
 * 27) Switch to bluemarine theme (Drupal standard) on mapguide (with mysql update) [see below]
 * 28) Switch to bluemarine theme (Drupal standard) on mapbender (with mysql update) [see below]
 * 29) point browser to test.drupal.org/update.php
 * 30) point browser to fdo-test.drupal.org/update.php
 * 31) point browser to mapguide-test.drupal.org/update.php
 * 32) point browser to mapbender-test.drupal.org/update.php
 * 33) Upgrade to 5.3
 * 34) log in as admin
 * 35) Untar drupal-5.3 to /var/www/drupal-5.3
 * 36) point browser to test.drupal.org/update.php
 * 37) point browser to fdo-test.drupal.org/update.php
 * 38) point browser to mapguide-test.drupal.org/update.php
 * 39) point browser to mapbender-test.drupal.org/update.php
 * 40) install missing modules
 * 41) enable required modules
 * 42) enable the osgeo theme on osgeo
 * 43) enable the osgeo theme on fdo
 * 44) enable the osgeo theme on mapguide
 * 45) enable the osgeo theme on mapbender
 * 46) dump databases and tar files and move the new site over to osgeo1
 * 47) load the new site files and databases
 * 48) edit apache config files to point to new sites.
 * 1) enable the osgeo theme on osgeo
 * 2) enable the osgeo theme on fdo
 * 3) enable the osgeo theme on mapguide
 * 4) enable the osgeo theme on mapbender
 * 5) dump databases and tar files and move the new site over to osgeo1
 * 6) load the new site files and databases
 * 7) edit apache config files to point to new sites.

dev.osgeo.conf
 ServerName dev.osgeo.net DocumentRoot /var/www/html ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common  Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all  

edu.osgeo.conf
 ServerName edu.osgeo.net DocumentRoot /var/www/moodle ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common  Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all  

fdo-test.osgeo.conf
 ServerName dev.osgeo.net DocumentRoot /var/www/fdo ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common  Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all  

mapbender.osgeo.conf
 ServerName mapbender-test.osgeo.net DocumentRoot /var/www/mapbender ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common  Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all  

mapguide.osgeo.conf
 ServerName mapguide-test.osgeo.net DocumentRoot /var/www/mapguide ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common <Directory "/var/www/mapguide"> Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost>

SQL to disable all non-core modules
alter table system set status=0 where where name != 'aggregator' and name != 'block' and name != 'blog' andname != 'blogapi' and name != 'book' and name != 'comment' and name != 'contact' and name != 'drupal' and name != 'filter' and name != 'forum' and name != 'help' and name != 'legacy' and name != 'locale' and name != 'menu' and name != 'node' and name != 'path' and name != 'ping' and name != 'poll' and name != 'profile' and name != 'search' and name != 'statistics' and name != 'taxonomy' and name != 'throttle' and name != 'tracker' and name != 'upload' and name != 'user' and name != 'watchdog' and name != 'bluemarine';

SQL to set bluemarine as the default theme
alter table variable set value='s:10:"bluemarine";' where name='theme_default';