Migrating to Drupal 7 from Drupal 6

Drupal Version

Editor's  Note:  We sincerely hope that no one is still running a site on Drupal 6 at this point, but just in case you should inherit a site that turns out to still be on Drupal 6, we're leaving the following instructions in place, even though they are a bit outdated now, and there's no guarantee that the external links will continue to work.

Before You Begin

Create a SEPARATE Test site to use for this process, so you don't kill your Live, Production site and...BACK UP EVERYTHING!

The Recommended Process

Almost no one does a regular upgrade, because so much has changed between Drupal 6 and Drupal 7, and many contributed modules don't even exist in version 7. Instead, the process usually involves:

  1. Creating a new development Drupal 7 instance.
  2. Recreating any important content types and functionality in that development site.
  3. Removing any un-needed modules from the new site (this also keeps your maintenance work easier).
  4. Moving/migrating or recreating actual content (nodes, pages, users, files, taxonomy, etc.) into this new site.

How-To Links on Migration/Upgrading

Use the Feeds XPath Parser module to move content

Common Migration Problems

One of the more common problems with migrating Drupal 6 to Drupal 7 is that Drupal 6 did not have the now standard field system.  Instead, many developers of complex sites used a third-party (contrib) module called CCK (Content Construction Kit), which doesn't have a direct migration path into the Drupal 7 field system.

Another feature often used was the User Profile module, which while still present in Drupal 7, is officially deprecated and is only made available when you run a standard Drupal 7 upgrade process on a Drupal 6 installation.  If your Drupal 6 site uses this module, then you should really take the time to properly migrate that profile information into the Drupal 7 field system, since the user profile module isn't available at all in Drupal 8.

It is possible to do some automated migration of CCK and User Profile data via custom PHP scripting run at the command line, but this is not a task for the novice user, as you need a good understanding of the Drupal 6 and 7 database schemas.  For anyone else, you may either need to hire a web development company that can do this work, or consider hiring student assistants to manually re-enter the data (if the amount isn't too large) into a properly structured Drupal 7 development site.