Last updated August 13, 2015. Created on July 19, 2011.
Edited by hansfn, David_Rothstein, NewSites, elsatch. Log in to edit this page.

This post contains the information of UPGRADE.txt that is relevant to a minor Drupal core update. The full UPGRADE.txt that was formerly posted here, is available in the API documentation.


This document describes how to update your Drupal site from one minor 7.x version to another minor 7.x version; for example, from 7.8 to 7.9, or from 7.6 to 7.10.

The instructions here are specific to Drupal 7, although the procedure for updating a Drupal 6 site is similar.

First steps and definitions:

  • If you are updating to Drupal version x.y, then x is known as the major version number, and y is known as the minor version number. The download file will be named drupal-x.y.tar.gz (or
  • All directories mentioned in this document are relative to the directory of your Drupal installation.
  • Make a full backup of all files, directories, and your database(s) before starting, and save it outside your Drupal installation directory. Instructions may be found at
  • Always try an update or upgrade on a test copy of your site before applying it to your live site. Even minor updates can cause your site's behavior to change.
  • If you used an install profile make sure to keep it when performing step 3 (remove all old core files). If you remove your install profile your site will begin throwing "undefined index" errors. (

Update problems

If you encounter errors during this process:

  • Note any error messages you see.
  • Restore your site to its previous state, using the file and database backups you created before you started the update process. Do not attempt to do further updates on a site that had update problems.
  • Consult one of the support options listed on
  • Also consider consulting the #drupal channel on IRC
  • Updating your Drupal Core files using drush may also result in "undefined index" errors.

More in-depth information on updating and upgrading can be found at


A simplified version of these instructions is given in the Installation Guide. You may find it helpful to refer to those instructions as well.

In addition to the simplified version of these instructions there are alternative procedures:

  1. Upgrading Drupal using Drush
  2. Upgrading Drupal using a patch file

To update from one minor 7.x version of Drupal to any later 7.x version, after following the instructions in the First steps and definitions section at the top of this file:

  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" checkbox 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 subfolders 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 to a directory outside of your web root. Extract the archive and copy the files into your Drupal directory.
    • On a typical Unix/Linux command line, use the following commands to download and extract:
      tar -zxvf drupal-x.y.tar.gz
    • This creates a new directory drupal-x.y/ containing all Drupal files and directories. Copy the files into your Drupal installation directory:

      cp -R drupal-x.y/* drupal-x.y/.htaccess /path/to/your/installation
    • If you do not have command line access to your server, download the archive from using your web browser, extract it, and then use an FTP client to upload the files to your web root.

    This will (a) install fresh copies of the files and subfolders deleted in step 3, (b) overwrite any files in the "sites" folder that are part of core, e.g., "sites/all/README.txt" and "sites/default/default.settings.php", and (c) leave alone any file in the "sites" folder whose path and name is different from any file in core. As an alternative, you could (a) copy all the files and folders except "sites" from the new core you downloaded into your Drupal root, (b) if the release notes indicate there have been changes to "settings.php", then replace your "default.settings.php" with the new version in your download, replace your current "settings.php" with a copy of the new "default.settings.php", and insert any site-specific content from current "settings.php" into the new one, and (c) repeat step (b) for all additional sites in a multi-site installation.

  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 (replace 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. Go to Administration > Reports > Status report. Verify that everything is working as expected.
  8. Ensure that $update_free_access is FALSE in settings.php.
  9. Go to Administration > Configuration > Development > Maintenance mode. Disable the "Put site into maintenance mode" checkbox and save the configuration.

Looking for support? Visit the forums, or join #drupal-support in IRC.


nigelw’s picture

For those of you that are complaining about the update process of Drupal. Stop whining and start helping to work on #606592: Allow upgrading core with the update manager for Drupal 8

Furthermore, updating Drupal is not that complicated. The steps above are meant for the total newbie and cover each step in depth just to make sure you don't blow up your site.

To update your site:

1. Put site in Maintenance Mode
2. Backup your site (Files and DB)
3. Delete Core files (Everything except the 'sites" folder)
4. Replace core files with latest version (less the 'sites' folder)
5. Run Update.php

Simple. :)

maki3000’s picture

Just one question concerning the minor Drupal8 core update:

Delete Core files (Everything except the 'sites" folder)

What would that be for D8?

  • core
  • vendor
  • .csslintrc
  • .editorconfig
  • .eslintignore
  • .eslintrc
  • .gitattributes
  • .htaccess
  • autoload.php
  • composer.json
  • composer.lock
  • example.gitignore
  • index.php
  • LICENSE.txt
  • README.txt
  • robots.txt
  • update.php
  • web.config


in it is said:

Sometimes an update includes changes to default.settings.php (this will be noted in the release notes). If that's the case, follow these steps...

sorry, but i don't want to read all the release notes everytime. is there an easy solution for that?

i'm looking foreward for:
THX for your work!!!

gle’s picture

If it's so simple, why isn't a simple script provided?

This is 2016 and I still need to search the documentation on (there isn't even a link on the release notes!) in order to update by deleting and copying files manually. WTF?!

I'm not whining, I'm just telling this poor UX is not on par with the quality of drupal.

F.E.M’s picture

All the latest updates no matter how small get pushed from upstream directly into my install.

waqariz’s picture

That's well pretty process. It has worked for me.