Drupal Upgrade Plan 2008
Revision as of 03:28, 2 November 2007 by Wiki-Wolf (talk | contribs) (→osgeo2 server tasks: Profile is part of core)
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):
Time estimation
I estimate that the total read-only time for the OSGeo sites will be around 1 day if everything goes according to plan, this does not include the preliminary tasks which have to be completed prior to doing the upgrade.
Preliminary tasks
DNS Changes
- create entry CNAME dev.osgeo.net test.osgeo.net.
- create entry CNAME edu.osgeo.net test.osgeo.net.
- create entry CNAME fdo-test.osgeo.net test.osgeo.net.
- create entry CNAME mapbender-test.osgeo.net test.osgeo.net.
- create entry CNAME mapguide-test.osgeo.net test.osgeo.net.
osgeo1 server tasks
- 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
- download Drupal 4.7.8
- Download Drupal 5.3 and modules:
- captcha
- content (CCK)
- date
- imagefield
- number (comes with CCK)
- link (comes with CCK)
- optionwidgets (comes with CCK)
- text (comes with CCK)
- diff
- event
- basicevent
- feedback
- image
- image_gallery (part of image)
- insert_block
- LDAP Integration consists of:
- ldapauth
- ldapdata
- ldapgroups
- locale
- localizer
- localizerblock
- localizermenu
- localizernode
- localizertaxonomy
- localizeruser
- localizerviews
- localizer
- menu
- page
- path
- path_image
- pearwiki_filter
- recent_changes
- search
- statistics
- story
- syndication
- taxonomy
- tinymce
- imce
- upload
- views
- views_rss
- views_theme_wizard
- views_ui
- webfm
- create new directory structure
- /var/www/drupal-5.3 (extracted from the tarball)
- /var/www/drupal (symlnk to above)
- /var/www/osgeo (symlink contents of drupal here)
- /var/www/osgeo/files
- /var/www/fdo (like osgeo)
- /var/www/mapguide
- /var/www/mapbender
- Build a new osgeo theme, visually the same as the old theme. Based on some 5.3 theme engine.
Actual Upgrade sequence
osgeo1
- Make a Backup of all 4 Drupal databases and the files.
- Make all Drupal sites read-only by taking away write access (run a script)
osgeo2
- Extract osgeo1 files to /var/www/drupal
- Create a new databases for the sites
- drupal_osgeo
- drupal_fdo
- drupal_mapguide
- drupal_mapbender
- Move old drupal test.osgeo.net to run on dev.osgeo.net
- Add dev.osgeo.conf to Apache
- Point osgeo.conf to /var/www/drupal
- Point fdo.conf to /var/www/drupal
- Point mapguide.conf to /var/www/drupal
- Point mapbender.conf to /var/www/drupal
- Upgrade Drupal to 4.7.8
- Untar drupal-4.7.8 to /var/www/drupal-4.7.8
- Log in as 'admin' to osgeo site
- Log in as 'admin' to fdo site
- Log in as 'admin' to mapguide site
- Log in as 'admin' to mapbender site
- Disable all non-core modules on osgeo (with mysql update) [see below]
- Disable all non-core modules on fdo (with mysql update) [see below]
- Disable all non-core modules on mapguide (with mysql update) [see below]
- Disable all non-core modules on mapbender (with mysql update) [see below]
- Switch to bluemarine theme (Drupal standard) on osgeo (with mysql update) [see below]
- Switch to bluemarine theme (Drupal standard) on fdo (with mysql update) [see below]
- Switch to bluemarine theme (Drupal standard) on mapguide (with mysql update) [see below]
- Switch to bluemarine theme (Drupal standard) on mapbender (with mysql update) [see below]
mv /var/www/drupal /var/www/drupal-old
ln -s /var/www/drupal-4.7.8 /var/www/drupal
rm -rf /var/www/drupal-4.7.8/sites
mv /var/www/drupal-old/sites /var/www/drupal-4.7.8
- point browser to test.drupal.org/update.php
- point browser to fdo-test.drupal.org/update.php
- point browser to mapguide-test.drupal.org/update.php
- point browser to mapbender-test.drupal.org/update.php
- Upgrade to 5.3
- log in as admin
- Untar drupal-5.3 to /var/www/drupal-5.3
ln -s /var/www/drupal-5.3 /var/www/drupal
rm -rf /var/www/drupal-5.3/sites
mv /var/www/drupal-4.7.8/sites /var/www/drupal-5.3
- point browser to test.drupal.org/update.php
- point browser to fdo-test.drupal.org/update.php
- point browser to mapguide-test.drupal.org/update.php
- point browser to mapbender-test.drupal.org/update.php
- install missing modules
- enable required modules
- enable the osgeo theme on osgeo
- enable the osgeo theme on fdo
- enable the osgeo theme on mapguide
- enable the osgeo theme on mapbender
- dump databases and tar files and move the new site over to osgeo1
osgeo1
- load the new site files and databases
- edit apache config files to point to new sites.
- www.drupal.org
- Point osgeo.conf to /var/www/drupal
- Point fdo.conf to /var/www/drupal
- Point mapguide.conf to /var/www/drupal
- Point mapbender.conf to /var/www/drupal
dev.osgeo.conf
<VirtualHost 66.223.95.243:80> ServerName dev.osgeo.net DocumentRoot /var/www/html ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost>
edu.osgeo.conf
<VirtualHost 66.223.95.243:80> ServerName edu.osgeo.net DocumentRoot /var/www/moodle ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common <Directory "/var/www/moodle"> Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost>
fdo-test.osgeo.conf
<VirtualHost 66.223.95.243:80> ServerName dev.osgeo.net DocumentRoot /var/www/fdo ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common <Directory "/var/www/fdo"> Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost>
mapbender.osgeo.conf
<VirtualHost 66.223.95.243:80> ServerName mapbender-test.osgeo.net DocumentRoot /var/www/mapbender ErrorLog /var/log/httpd/osgeo-error_log CustomLog /var/log/httpd/osgeo-access_log common <Directory "/var/www/mapbender"> Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost>
mapguide.osgeo.conf
<VirtualHost 66.223.95.243:80> 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' and name != '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'; delete from cache;