Upgrading Open Atrium past the beta4 boundary

Déja Augustine's picture

Software Architect

Blog

Upgrading Open Atrium past the beta4 boundary

share

Open Atrium (http://www.openatrium.com) is best described as an "Intranet in a box" that sits atop Drupal 6. With the release of Open Atrium 1.0-beta4, Development Seed made a few crucial changes to the way OA is configured and structured. Now at beta7, there are still some older OA sites out there that are still running versions prior to beta4. Those sites require a little extra work to upgrade since they need to be upgraded to beta4 first, and then can be upgraded to beta7 and beyond.

It should also be noted that each release of Open Atrium contains a version of the Drupal core as well. I do not personally know if there are any potential issues with upgrading the version of Drupal independently of Open Atrium, but I do know that updating Open Atrium will typically upgrade the Drupal Core as well.

The basic steps for upgrading Open Atrium to beta4 are straightforward, but there are a couple pitfalls that you should watch out for:

1. Make sure you have a backup of EVERYTHING (your codebase, your database, etc)
2. Do NOT visit your site in a browser until you've finished all of the steps

After observing the above pitfalls, start with a fresh beta4 codebase and copy over your files and contributed modules.

Next, make sure you follow the section titled "Upgrading from Atrium 1.0-beta3.x to 1.0-beta4" located here: http://drupalcode.org/viewvc/drupal/contributions/profiles/openatrium/UP...

Items 1, 2, and 3 are mission critical. Using drush:
drush vset install_profile openatrium
drush cc all
drush updatedb

Before beta4, OA did not use the install_profile variable. Starting with beta4, if you don't have this variable, you will at best be stuck with the pre-beta4 themes and features. At worst, you'll be stuck on either an unthemed site or a garland Drupal.

Additionally, if you visit the site, or even run certain drush commands, before you run the updatedb command, you can end up with module mismatches that will not only break the site, but it'll also break drush's access to the site. Here is one such gem:

[deja@sitehost siteroot]$ drush status
PHP Fatal error:  Call to undefined function ctools_include() in /home/vhosts/siteroot/profiles/openatrium/modules/contrib/purl/purl.module on line 740
Drush command could not be completed.                                [error]

Once this happens, your only option is to restore your database backup and then run your update command:
drush updatedb

Once you sidestep those chasms of pain and suffering, however, you'll find that Open Atrium handles the upgrade quite smoothly. Upon loading the site in your browser, you'll see all the shiny newness of the post-beta4 themes, and the new and updated features are at your beck and call, with all of your existing groups, users, and content intact.