This is a list of things you need to do BEFORE you upgrade. It is important to understand how your existing site is built before you start your upgrade. It is best to practice your upgrade on a test or development site before you upgrade your production site.
If you are unsure about what version your site is running, see the Drupal Version Numbering page of the documentation.
Module and Theme Inventory
Identify the modules that are installed (including ones that are installed and not enabled). To do this, you can either look at the listed modules on the Modules admin page (Administer > Site building > Modules), or in your sites/all/modules directory.
Identify which theme is active on the site by looking at the Themes page (Administer > Site building > Themes), which shows all installed themes, and which ones are enabled.
Drupal 5 users may benefit from the Update Status module which can make this process much easier. It lists all modules installed on your site, their version numbers, and whether or not the most up to date version is installed. This has been added to Drupal 6 core. The Available Updates page is found at admin/reports/updates. Also useful is the Update status advanced settings module which adds some of the functionality present in contrib that was not included in core.
Write down the complete list of modules and themes installed on your site. You can use this as a checklist when upgrading contributed modules as well as when you disable and re-enable modules during the actual Drupal upgrade.
Disable and Uninstall Unused Modules
After taking inventory of your modules, you may become aware of modules that your site is not actually using. It is always recommended to disable and remove modules that are not actually in use for both security and performance reasons. During an upgrade you also save yourself from having to update or upgrade unused modules.
Contributed Module Upgrade Planning
Answer the following questions for each of the modules in your inventory:
- Is there a version of the module for Drupal 7? You can find out by visiting the project page on Drupal.org for each of your modules.
- Has the module moved to Drupal core? Drupal 7 core has incorporated several key contributed modules into its release. For a full list see Drupal 6 contributed modules that are in Drupal 7 core.
- Is there an upgrade path for the version of a module you have and the version that is available for Drupal 7? In some cases module authors release multiple versions of a module (e.g. module_name 6.x-1.x and module_name 6.x-2.x) and only one of those versions will be available for Drupal 7.
- Does the Drupal 7 version of a module introduce any new dependencies? In some cases new version of modules will have dependencies on other contributed modules that they did not have in previous versions. When you upgrade your site you will need to make sure to install the modules your module depends on.
Theme Upgrade Planning
If your site uses a contributed theme, you will need to research whether your theme can be upgraded to Drupal 7.
- Is there a version of your theme available for Drupal 7?
- Is your theme based on a theme framework like Zen or 960? What is the upgrade path for those frameworks?
If your theme is entirely custom or is a modified version of a contributed theme or even based on a theme framework, you will need to plan on spending time upgrading the code for your theme at some point prior to upgrading your site. See Converting 6.x themes to 7.x
Identify Core Customizations and Contributed Module Customizations
As a rule you should never 'Hack Core' i.e. modify core modules or files.
If, however, you have modified your core Drupal files and modules, it is entirely your own responsibility to make note of those changes and plan your upgrade accordingly.
The same is true of modified contributed modules.
Document your Upgrade Plan
Using your module and theme inventory and the research you did planning for your module and theme upgrades begin documenting your overall upgrade plan. This plan should include steps found in UPGRADE.txt. Make a list of steps and checklists that you can refer to as you proceed through the upgrade process. There are too many things that are easily forgotten when performing an upgrade and having everything written down ahead of time will save you time and aggravation. Also, having a document like this ahead of time provides you with a place to take additional notes during the upgrade. These notes may prove valuable the next time you have to do an upgrade.
Consider documenting the following as part of your upgrade plan.
- Modules that cannot be upgraded and what alternative choices exist.
- Modules requiring an upgrade before upgrading the core codebase.
- Special upgrade instructions (if any) for each module.
- The order in which modules should be upgraded.
- A plan for testing whether the upgrade was successful.