Notes I made for a potential handbook page on upgrading Drupal sites from one major version to another (e.g. Drupal 6.x to 7.x).

    1. strategize your upgrade

      • research questions:

        • which contributed modules do you have installed?

        • group them into two:

          • which modules are absolutely required for the smooth functioning of the website

          • which modules are not

        • identify which ones have updated versions of the modules

        • these may be developmental versions not ready for prime time

        • official releases may have more/different features than you're used to

        • modules without release may be in progress. Look in the issue queue for work on the module version that is compatible with the version of Drupal core you are upgrading to. If there isn't one yet, create an issue in the queue enquiring about a D7 release.

        • what custom modules and/or themes do you have? They will require some changes to the underlying code: visit the instructions for upgrading themes and the instructions for upgrading modules.

    2. communicate downtime

      • If the site had multiple contributors, make sure everybody knows ahead of time that an upgrade is planned and how long you expect it to take. You will have an idea of this after doing some test runs.

    3. backup

      • This is an excellent opportunity to backup files and database. Not only that, but a backup will allow you to revert to a known, working state before you attempt the upgrade.

    4. install Drupal in a separate file system

      • take the opportunity to setup in the proper way, whatever that may be. An example:

        • all modules in sites/all/modules

        • all themes in sites/all/themes

        • move settings.php to site-specific folder sites/example.com/settings.php

    5. test run the upgrade, make notes about error messages and unexpected behaviour you encounter. Repeat until it is smooth.

    6. create a new database and import the backup you made into that database, setup settings.php to use that database

    7. upgrade

      • communicate with everybody involved in the site about the upgrade

      • put your site into maintenance mode so that regular users cannot add content during the alloted hours

      • communicate throughout as to the progress of the upgrade

      • run update.php, and make note of all messages that result.

      • visit the status report and make any adjustments that are necessary