Upgrade Drupal

 

Before you start updating or upgrading your Drupal installation it is important that you know the difference between a major and a minor version release.

  • major version of Drupal core is represented by the number before the first decimal. For example Drupal 5.1, Drupal 6.1, and Drupal 7.1 are all different major releases. This is considered an upgrade.
  • minor version of Drupal core is represented by the decimal. For example, Drupal 7.1, 7.13, and 7.23 are all different minor releases of Drupal 6. This is considered an update.
  • Updating means installing a new minor version, e.g. from Drupal 7.36 to 7.37.
  • Upgrading means installing a new major version, e.g. from Drupal 7 to 8.

Update procedure (minor version change)

With a minor release update such as from Drupal 7.1 to the latest Drupal 7.x version, you do not have to apply all the updates that have been released between the versions. You can jump directly from 7.1 to that version.

  1. Log in as a user with the permission “Administer software updates”.
  2. If you are updating a live, production site, go to Administration > Configuration > Development > Maintenance mode. Enable the “Put site into maintenance mode” check box and save the configuration.
  3. Remove all old core files and directories, except for the ‘sites’ directory, the original install profile in the ‘profiles’ directory and any custom files you added elsewhere.
  • To be more specific, in your Drupal root folder, delete all files and the following folders: includes, misc, modules, scripts, and themes. If you used a normal installation, then also delete the profiles folder, but if you used a custom profile, then in the profiles folder, delete the sub-folders minimal, standard, and testing.
  • If you made modifications to files like .htaccess or robots.txt, you will need to re-apply them from your backup, after the new files are in place.
  • Sometimes an update includes changes to settings.php (this will be noted in the release announcement). If that’s the case, replace your old settings.php with the new “default.settings.php”, and copy the site-specific entries (especially the lines giving the database name, user, and password) from the old settings.php to the new settings.php.
  • If you had added any custom templates or other custom files outside the “sites” folder (note that this is generally not recommended), then you will need to restore them from your backup because they have been deleted.

4. Download the latest Drupal 7.x release from http://drupal.org/project/drupal to a directory outside of your web root. Extract the archive and copy the files into your Drupal directory.

5. Re-apply any modifications to files such as .htaccess or robots.txt and restore any deleted templates or other custom files you had in core folders.

6. Run update.php by visiting http://www.example.com/update.php (replace www.example.com with your domain name). This will update the core database tables.

If you are unable to access update.php do the following:

    • Open settings.php with a text editor.
    • Find the line that says:

$update_free_access = FALSE;

Change it into:
$update_free_access =TRUE;

    • Try again to run update.php.
    • Once the update is done, $update_free_access must be reverted to FALSE.

In a multi-site installation, run update.php again for each site.

7. Navigate to Administration > Configuration > Development > Performance and “clear all cache”. So that the cache is rebuilt.

8. Go to Administration > Reports > Status report. Verify that everything is working as expected.

9. Ensure that $update_free_access is FALSE in settings.php.

10. Go to Administration > Configuration > Development > Maintenance mode. Disable the “Put site into maintenance mode” check box and save the configuration.

 

Upgrade procedure (major version change)

Major release upgrade expects you to first update to the current minor release prior to applying the major release update. If 7.43  is the current version of Drupal 7, and your site is running 7.38, you would first need to update to 7.43.then upgrade to 8.0.5

  • The Migrate Upgrademodule installed and enabled on the Drupal 8 site.
  • After installing the module, visit your Drupal 8 site’s/upgrade page.

drupal1

  • When you are ready to proceed, press Continue. This takes you to the Migrate Upgrade page shown below. Enter the database credentials and path of your Drupal 6 or 7 site’s files , and press Review upgrade.If your Drupal 6 or Drupal 7 site uses a database prefix, be sure to expand the Advanced options and provide that prefix. drupal2

If the database credentials are correct, the upgrade review page will list the sources and destinations identified and missing based on modules present on the source site. The page provides a summary of the upgrade paths found and missing and then details the missing ones first:

drupal3

You cannot do anything directly on this page to fix these missing migrations. Some of them may just be missing implementations that need to be developed, while others signify modules not installed on the destination site. In this example, the book module is enabled on the source site but was not installed in the preparation step on the destination site, therefore its reported missing.

 

The available migrations are listed below this list and are collapsed by default. When uncollapsed, this list allows you to review what will end up where on the new site. For example, this shows that the block module from the source site is migrated to two modules on Drupal 8. There is absolutely nothing to do about these, the list is purely informational.

drupal4

 

This is the final page before the actual execution of the upgrade, so this is the final chance to hit Cancel. Once you press the Perform upgrade button, the process is started. Depending on the size and types of content/configuration on the source site, the upgrade may take a very long time (possibly hours for a bigger data set), so be prepared for letting the process run long (note that due to password encryption, user accounts take particularly long to import).