Updating a Large Scale Drupal Multisite Installation?

In the Teaching & Learning Centre, we run a couple of servers, each with a dozen or so Drupal sites installed in a multisite configuration (one copy of Drupal, using the sites directory to respond to various URLs). With every update to core or modules, the update.php file needs to be called for each site. That’s not too onerous, but is a bit of a PITA.

Our central IT shop at the University of Calgary has a whole ‘nother problem. Their Drupal server is currently running well over 400 sites. So, calling update.php on each one effectively means having a bunch of folks (students? interns?) clicking through the update.php screens for each site. Say it takes maybe 5 minutes per site, that’s over 30 hours of labour to update all sites. And new sites are added every day.

There has to be a better way. I was hoping Sympal Scripts had some magic fu, but came up empty. Are there any secret tricks to calling update.php on each site quasi-automatically for a large-scale Drupal multisite installation?

7 thoughts on “Updating a Large Scale Drupal Multisite Installation?”

  1. Short answer: no, not with a “plain jane” multisite install. You can configure Vhosts etc. to run two full multisite versions in parallel and switch over sites one at a time, running update.php as needed.

    Long answer: yes, run our open source Hostmaster multisite management tools.

    Except, we’re re-writing it to be Drupal 6-based, and that version is going to be easier. See http://groups.drupal.org/hostmaster2 for more details.

  2. I’m involved with a 60+ multisite Drupal install and the best solution we’ve come up with is a script that generates a page listing update.php links for each site and then I start at the top and my co-worker starts at the bottom and we meet somewhere in the middle… sigh.

    I’m excited to see that hostmaster2 will be Drupal-based. The previous version was in Python, if I remember correctly. I’m guessing it’s Drush that’s made this feasible. Sweet…

  3. Yes, Drush has been helpful. Adrian made some enhancements already. The other bit is the “actions” included in core Drupal 6, which is why we can’t really build it on Drupal 5.

    Darcy, my way, you can run sites in parallel and upgrade them one at a time, rather than having to upgrade all of them.

  4. i have a folder of bookmarks in my firefox called “drupal updates”. i open them all in tabs and close them one at a time as i update them.

    i’d love a better (i.e. more automagical) way of doing it…

  5. The answer now is Drush: http://drupal.org/project/drush
    Drush offers completely scriptable Drupal controls for updating both code and database updates from a shell script, across any number of sites.

    Example…
    $ drush up
    …this one command will update everything at once — use drush carefully on non-production sites.

Comments are closed.