Difference between revisions of "Drupal Upgrade Plan 2010"

From OSGeo
Jump to navigation Jump to search
m (→‎Current modules: adding modules list...boy, it's big!)
m (→‎Current modules: added stars to show the more important modules)
Line 18: Line 18:
 
== Review Module Availability ==
 
== Review Module Availability ==
 
* Which modules needed - check that all are available in 6.x
 
* Which modules needed - check that all are available in 6.x
=== Current modules ===
+
=== Current modules ===
  
 
{| cellspacing="1" cellpadding="1" border="1" style="width: 433px; height: 387px;"
 
{| cellspacing="1" cellpadding="1" border="1" style="width: 433px; height: 387px;"
Line 27: Line 27:
 
! scope="col" |  
 
! scope="col" |  
 
|-
 
|-
 +
| Category
 +
| Module
 +
| Old version
 +
| New version
 +
|-
 +
| *Administration
 +
| ldapauth
 +
| 5.x-1.3
 
|  
 
|  
 +
|-
 
|  
 
|  
 +
| ldapdata
 +
| 5.x-1.3
 
|  
 
|  
 +
|-
 +
|
 +
| ldapgroups
 +
| 5.x-1.3
 +
|
 +
|-
 +
| *CCK
 +
| Content
 +
| 5.x-1.6-1
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
 +
| Content Copy
 +
| 5.x-1.6-1
 
|  
 
|  
 +
|-
 
|  
 
|  
 +
| Content Taxonomy
 +
| 5.x-1.x-dev
 
|  
 
|  
 
|-
 
|-
| Category
+
|  
| Module
+
| Content Taxonomy Options
| Old version
+
| 5.x-1.x-dev
| New version
+
|
 +
|-
 +
|
 +
| Date
 +
| 5.x-1.7
 +
|
 +
|-
 +
|
 +
| Date Copy
 +
| 5.x-1.7
 +
|
 +
|-
 +
|
 +
| EMail
 +
| 5.x-1.0
 +
|
 +
|-
 +
|
 +
| Fieldgroup
 +
| 5.x-1.6-1
 +
|
 +
|-
 +
|
 +
| Image
 +
| 5.x-1.1
 +
|
 +
|-
 +
|
 +
| Link
 +
| 5.x-1.x-dev
 +
|
 +
|-
 +
|
 +
| Node Reference
 +
| 5.x-1.6-1
 +
|
 +
|-
 +
|
 +
| Number
 +
| 5.x-1.6-1
 +
|
 +
|-
 +
|
 +
| Option Widgets
 +
| 5.x-1.6-1
 +
|  
 
|-
 
|-
| Administration
+
|  
| ldapauth
+
| Text
| 5.x-1.3
+
| 5.x-1.6-1
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| ldapdata
+
| User Reference
| 5.x-1.3
+
| 5.x-1.6-1
 +
|
 +
|-
 +
| Core - optional
 +
| *Aggregator
 +
| 5.3  
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| ldapgroups
+
| *Blog
| 5.x-1.3
+
| 5.3  
 
|  
 
|  
 
|-
 
|-
| CCK
+
|  
| Content
+
| Comment
| 5.x-1.6-1
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Content Copy
+
| Drupal
| 5.x-1.6-1
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Content Taxonomy
+
| Help
| 5.x-1.x-dev
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Content Taxonomy Options
+
| *Locale
| 5.x-1.x-dev
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Date
+
| *Menu-Localizer
| 5.x-1.7
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Date Copy
+
| *Path
| 5.x-1.7
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| EMail
+
| *Profile
| 5.x-1.0
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Fieldgroup
+
| Search
| 5.x-1.6-1
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Image
+
| *Statistics
| 5.x-1.1
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Link
+
| *Taxonomy-Localizer
| 5.x-1.x-dev
+
| 5.3
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Node Reference
+
| *Upload
| 5.x-1.6-1
+
| 5.3
 +
|
 +
|-
 +
| *Event
 +
| Basic event
 +
| 5.x-1.0
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Number
+
| Event
| 5.x-1.6-1
+
| 5.x-1.0
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Option Widgets
+
| Event All Day
| 5.x-1.6-1
+
| 5.x-1.0
 
|  
 
|  
 
|-
 
|-
|
+
|  
| Text
+
| Event Views
| 5.x-1.6-1
+
| 5.x-1.0
|
+
|  
 
|-
 
|-
|
+
| *Image
| User Reference
+
| Image
| 5.x-1.6-1
+
| 5.x-1.6  
 
|  
 
|  
 
|-
 
|-
| Core - optional
+
|  
| Aggregator
+
| Image Attach
| 5.3
+
| 5.x-1.6
|
+
|  
 
|-
 
|-
|
+
|  
| Blog
+
| Image Gallery
| 5.3
+
| 5.x-1.6
|
+
|  
 
|-
 
|-
|
+
|  
| Comment
+
| Image Import
| 5.3
+
| 5.x-1.6
|
+
|  
 
|-
 
|-
|
+
| *Localizer
| Drupal
+
| Localizer
| 5.3
+
| 5.x-1.10
|
+
|  
 
|-
 
|-
|
+
|  
| Help
+
| Localizer block
| 5.3
+
| 5.x-1.10
|
+
|  
 
|-
 
|-
|
+
|  
| Locale
+
| Localizer menu
| 5.3
+
| 5.x-1.10
|
+
|  
 
|-
 
|-
|
+
|  
| Menu-Localizer
+
| Localizer node
| 5.3
+
| 5.x-1.10
|
+
|  
 
|-
 
|-
|
+
|  
| Path
+
| Localizer taxonomy
| 5.3
+
| 5.x-1.10
|
+
|  
 
|-
 
|-
|
+
|  
| Profile
+
| Localizer user
| 5.3
+
| 5.x-1.10
|
+
|  
 
|-
 
|-
|
+
|  
| Search
+
| Localizer variable
| 5.3
+
| 5.x-1.10
|
+
|  
 
|-
 
|-
|
+
|  
| Statistics
+
| Localizer views
| 5.3
+
| 5.x-1.10
|
+
|  
 
|-
 
|-
|
+
| Mail
| Taxonomy-Localizer
+
| Notify
| 5.3
+
| 5.x-1.x-dev
|
+
| 5.x-1.
 +
|  
 
|-
 
|-
|
+
| Other
| Upload
+
| *Bookreview
| 5.3
+
| 5.x-1.x-dev
|
+
|  
 
|-
 
|-
| Event
+
|  
| Basic event
+
| *Date API
| 5.x-1.0
+
| 5.x-1.7
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Event
+
| *Diff
| 5.x-1.0
+
| 5.x-1.1
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Event All Day
+
| *Feedback
| 5.x-1.0
+
| 5.x-1.x-dev
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Event Views
+
| *Insert Block
| 5.x-1.0
+
| 5.x-1.x-dev
|
+
|  
 
|-
 
|-
|
+
|  
| Image
+
| *Insert view
| Image
+
| 5.x-1.x-dev
| 5.x-1.6
+
|  
|
 
 
|-
 
|-
 
|  
 
|  
| Image Attach
+
| *Panels
| 5.x-1.6
+
| 5.x-1.2
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Image Gallery
+
| *path_image
| 5.x-1.6
+
| 5.x-1.1
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Image Import
+
| *Path Redirect
| 5.x-1.6
+
| 5.x-1.1-beta1
|
+
|  
 
|-
 
|-
| Localizer
+
|  
| Localizer
+
| *PEAR Wiki filter
| 5.x-1.10
+
| 5.x-1.1
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Localizer block
+
| Permissions Sorter
| 5.x-1.10
+
| 5.x-1.x-dev
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Localizer menu
+
| *Recent changes
| 5.x-1.10
+
| 5.x-1.1
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Localizer node
+
| Search Engine Referers
| 5.x-1.10
+
| 5.x-1.0
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Localizer taxonomy
+
| Secure Pages
| 5.x-1.10
+
| 5.x-1.x-dev
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Localizer user
+
| Site map
| 5.x-1.10
+
| 5.x-1.x-dev
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Localizer variable
+
| *TinyMCE
| 5.x-1.10
+
| 5.x-1.9
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Localizer views
+
| Token
| 5.x-1.10
+
| 5.x-1.9
|
+
|  
 
|-
 
|-
| Mail
+
|  
| Notify
+
| *Upload path
 
| 5.x-1.x-dev
 
| 5.x-1.x-dev
| 5.x-1.
+
|
|
+
|-
 +
| *Spam control
 +
| CAPTCHA
 +
| 5.x-3.0
 +
|
 +
|-
 +
|
 +
| Image CAPTCHA
 +
| 5.x-3.0
 +
|
 +
|-
 +
|
 +
| Text CAPTCHA
 +
| 5.x-3.0
 +
|  
 
|-
 
|-
| Other
+
| *Syndication
| Bookreview
+
| Syndication
 
| 5.x-1.x-dev
 
| 5.x-1.x-dev
|
+
|
 +
|-
 +
| *Views
 +
| Views
 +
| 5.x-1.6
 +
|  
 
|-
 
|-
|
+
|  
| Date API
+
| Views RSS
| 5.x-1.7
+
| 5.x-1.6
|
+
|  
 
|-
 
|-
 
|  
 
|  
| Diff
+
| Views Theme Wizard
| 5.x-1.1
+
| 5.x-1.6
 
|  
 
|  
 
|-
 
|-
 
|  
 
|  
| Feedback
+
| Views UI
 +
| 5.x-1.6
 +
|
 
|-
 
|-
|
+
| Voting
 +
| Fivestar
 +
| 5.x-1.13
 
|  
 
|  
 
|-
 
|-
|
 
 
|  
 
|  
 +
| Fivestar Comments
 +
| 5.x-1.13
 +
|
 +
|-
 +
| Voting API
 +
| Voting API
 +
| 5.x-1.6
 
|  
 
|  
 +
|-
 +
| *WebFM
 +
| Web File Manager
 +
| 5.x-2.4
 +
|
 
|}
 
|}
  

Revision as of 04:26, 10 September 2010

Previous upgrade notes: Drupal Upgrade Plan

  • These notes are mostly just a copy of the previous upgrade, but are being modified still :)

Upgrading the OSGeo Drupal CMS is a complicated task further complicated by the use of multi-site configuration. To upgrade from current 5.3 (??) to the newest 6.x (??) 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

Redirect any *test* instances?

Debian Package Installation

osgeo3/4 run debian linux OS. The server has no apache, drupal or any other packages already installed. Here is the list of packages to be installed to get support for our Drupal sites up and running:

  • apache2

Review Module Availability

  • Which modules needed - check that all are available in 6.x

Current modules

Category Module Old version New version
*Administration ldapauth 5.x-1.3
ldapdata 5.x-1.3
ldapgroups 5.x-1.3
*CCK Content 5.x-1.6-1
Content Copy 5.x-1.6-1
Content Taxonomy 5.x-1.x-dev
Content Taxonomy Options 5.x-1.x-dev
Date 5.x-1.7
Date Copy 5.x-1.7
EMail 5.x-1.0
Fieldgroup 5.x-1.6-1
Image 5.x-1.1
Link 5.x-1.x-dev
Node Reference 5.x-1.6-1
Number 5.x-1.6-1
Option Widgets 5.x-1.6-1
Text 5.x-1.6-1
User Reference 5.x-1.6-1
Core - optional *Aggregator 5.3
*Blog 5.3
Comment 5.3
Drupal 5.3
Help 5.3
*Locale 5.3
*Menu-Localizer 5.3
*Path 5.3
*Profile 5.3
Search 5.3
*Statistics 5.3
*Taxonomy-Localizer 5.3
*Upload 5.3
*Event Basic event 5.x-1.0
Event 5.x-1.0
Event All Day 5.x-1.0
Event Views 5.x-1.0
*Image Image 5.x-1.6
Image Attach 5.x-1.6
Image Gallery 5.x-1.6
Image Import 5.x-1.6
*Localizer Localizer 5.x-1.10
Localizer block 5.x-1.10
Localizer menu 5.x-1.10
Localizer node 5.x-1.10
Localizer taxonomy 5.x-1.10
Localizer user 5.x-1.10
Localizer variable 5.x-1.10
Localizer views 5.x-1.10
Mail Notify 5.x-1.x-dev 5.x-1.
Other *Bookreview 5.x-1.x-dev
*Date API 5.x-1.7
*Diff 5.x-1.1
*Feedback 5.x-1.x-dev
*Insert Block 5.x-1.x-dev
*Insert view 5.x-1.x-dev
*Panels 5.x-1.2
*path_image 5.x-1.1
*Path Redirect 5.x-1.1-beta1
*PEAR Wiki filter 5.x-1.1
Permissions Sorter 5.x-1.x-dev
*Recent changes 5.x-1.1
Search Engine Referers 5.x-1.0
Secure Pages 5.x-1.x-dev
Site map 5.x-1.x-dev
*TinyMCE 5.x-1.9
Token 5.x-1.9
*Upload path 5.x-1.x-dev
*Spam control CAPTCHA 5.x-3.0
Image CAPTCHA 5.x-3.0
Text CAPTCHA 5.x-3.0
*Syndication Syndication 5.x-1.x-dev
*Views Views 5.x-1.6
Views RSS 5.x-1.6
Views Theme Wizard 5.x-1.6
Views UI 5.x-1.6
Voting Fivestar 5.x-1.13
Fivestar Comments 5.x-1.13
Voting API Voting API 5.x-1.6
*WebFM Web File Manager 5.x-2.4

Current modules

...

Theme upgrade

Wave a magic wand to complete this step.

web.osgeo.org server tasks

  1. install packages
  2. setup webroot like this:
    • /var/www/drupal -> drupal-version
    • /var/www/site.osgeo.org (most of /var/www/drupal stuff symlinked here)
    • This way all sites have their own files directory for uploads and images)
  3. install drupal (old version)
  4. copy all sites over
  5. upgrade to Drupal 6 (more details later)

osgeo2 server tasks

  1. download Drupal 4.7.8
  2. 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
    • path_image
    • pearwiki_filter
    • recent_changes
    • syndication
    • tinymce
      • imce
    • views
      • views_rss
      • views_theme_wizard
      • views_ui
    • webfm
  3. Build a new osgeo theme, visually the same as the old theme. Based on 5.3 bluemarine

These items still need doing

  1. 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

Actual Upgrade sequence

osgeo1

  1. Make a Backup of all 4 Drupal databases and the files.
  2. Make all Drupal sites read-only by taking away write access

osgeo2

  1. Extract osgeo1 files to /var/www/drupal
  2. Create a new databases for the sites
    • drupal_osgeo
    • drupal_fdo
    • drupal_mapguide
    • drupal_mapbender
  3. Move old drupal test.osgeo.net to run on dev.osgeo.net
    1. Add dev.osgeo.conf to Apache
    2. Point osgeo.conf to /var/www/drupal
    3. Point fdo.conf to /var/www/drupal
    4. Point mapguide.conf to /var/www/drupal
    5. Point mapbender.conf to /var/www/drupal
  4. Upgrade Drupal to 4.7.8
    1. Untar drupal-4.7.8 to /var/www/drupal-4.7.8
    2. Log in as 'admin' to osgeo site
    3. Log in as 'admin' to fdo site
    4. Log in as 'admin' to mapguide site
    5. Log in as 'admin' to mapbender site
    6. Disable all non-core modules on osgeo (with mysql update) [see below]
    7. Disable all non-core modules on fdo (with mysql update) [see below]
    8. Disable all non-core modules on mapguide (with mysql update) [see below]
    9. Disable all non-core modules on mapbender (with mysql update) [see below]
    10. Switch to bluemarine theme (Drupal standard) on osgeo (with mysql update) [see below]
    11. Switch to bluemarine theme (Drupal standard) on fdo (with mysql update) [see below]
    12. Switch to bluemarine theme (Drupal standard) on mapguide (with mysql update) [see below]
    13. Switch to bluemarine theme (Drupal standard) on mapbender (with mysql update) [see below]
    14. mv /var/www/drupal /var/www/drupal-old
    15. ln -s /var/www/drupal-4.7.8 /var/www/drupal
    16. rm -rf /var/www/drupal-4.7.8/sites
    17. mv /var/www/drupal-old/sites /var/www/drupal-4.7.8
    18. point browser to test.drupal.org/update.php
    19. point browser to fdo-test.drupal.org/update.php
    20. point browser to mapguide-test.drupal.org/update.php
    21. point browser to mapbender-test.drupal.org/update.php
  5. Upgrade to 5.3
    1. log in as admin
    2. Untar drupal-5.3 to /var/www/drupal-5.3
    3. ln -s /var/www/drupal-5.3 /var/www/drupal
    4. rm -rf /var/www/drupal-5.3/sites
    5. mv /var/www/drupal-4.7.8/sites /var/www/drupal-5.3
    6. point browser to test.drupal.org/update.php
    7. point browser to fdo-test.drupal.org/update.php
    8. point browser to mapguide-test.drupal.org/update.php
    9. point browser to mapbender-test.drupal.org/update.php
  6. install missing modules
  7. enable required modules
  8. enable the osgeo theme on osgeo
  9. enable the osgeo theme on fdo
  10. enable the osgeo theme on mapguide
  11. enable the osgeo theme on mapbender
  12. dump databases and tar files and move the new site over to osgeo1


osgeo1

  1. load the new site files and databases
  2. edit apache config files to point to new sites.
    • www.drupal.org
    1. Point osgeo.conf to /var/www/drupal
    2. Point fdo.conf to /var/www/drupal
    3. Point mapguide.conf to /var/www/drupal
    4. 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 fdo-test.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;