With Pulp Blog

Planning Your Drupal 7 to 8 to 9 Upgrade

Cedric Jackson January 21, 2021

Upgrading your CMS lets you get the most from it. Planning a Drupal upgrade doesn't have to be overwhelming or complicated. Learn what to do as you plan your Drupal 7 to 8 migration or migrate to 9.

#Determine the Scope With a Content Audit

The first thing you need to do when planning a Drupal upgrade is to determine its scope. The best way to do this is with a content audit.

Inspect all of the following for your Drupal 7 or Drupal 8 site:

  • Modules
  • Views
  • Content types
  • Blocks
  • Roles
  • Permissions
  • Vocabularies

#Determine Which Content Is Crucial

Once you have made a list of all the content, consider each item on your list. Pay attention to whether you need all of the entities and content types.

In most cases, you'll find there's a lot of content entitites you can cut. You're likely to find webforms, vocabularies, blocks, and content types that you do not need. Recognizing these entities will save you time and effort during the Drupal migration.

#List Your Modules

Next, it's time to look at your modules. List all the modules on your Drupal 7 or Drupal 8 website. You'll use this list to help you understand the amount of custom development that will be neeeded when you go to Drupal 8 or 9.

A key consideration is that just because a module has a similar name in Drupal 7 and 8 or 9, that doesn't mean they map to each other cleanly. One example is the Drupal 7 Block module. In Drupal 8, this is two modules: Custom Block and Block.

#Check for Upgrade Paths

For every single module on your list, confirm whether there is a clear upgrade path.

From our experience, every upgrade will require some level of custom module development, but there's always a good chunk of modules that can be updated easily.

This step lets you confirm which modules are supported on Drupal 8 or 9, and where you'd need to set aside time for custom development.

#List Your Front-end Components and Page Templates

The next step of your Drupal upgrade planning is to plan your front-end development. Start by making a list of all the front-end components. Then make another of your unique page templates.

These 2 lists have 3 main benefits:

  • You'll have a roadmap of all the components that you'll need to build
  • You'll have a roadmap of all the unique content types
  • You'll specify the requirements clearly giving you a test plan that you can use to QA your work

#Enhance the Theme and Design Patterns

Although you don’t have to update your theme, a Drupal upgrade is a perfect time to do so. It will save you time in the future.

Probably, you have a list of theme changes your team wanted to make. You were likely waiting for the appropriate time to make the changes. This is the time.

From our experience, a Drupal upgrade is a great time to run an accessibility audit. This will give you a roadmap of theme updates that you can roll out as part of the upgrade. This can include enhancements to the HTML elements, color palettes and scale.

It's also a great time to enhance the visual design of your website. Over time, as websites get larger, many design edge cases are introduced. These are generally quick fixes that are hard to avoid as the amount of content grows. A Drupal upgrade is the perfect time to resolve these bandaids.

Create a new style guide that unifies the design patterns you're using (typography, interactive states, animations, etc). Share these with your front-end team to roll in as part of the Drupal upgrade.

#Browse the Known Issues Page

According to the Drupal website, the Drupal migration is still experimental. As such, not all of the core modules have full upgrade paths. To avoid issues, you should look at the Known Issues page. Make sure that none of the known issues will affect your migration.

#Make Sure You Meet the Upgrade Requirements

Before you start the Drupal 7 to 8 migration, make sure you meet all the requirements. These include:

  • A fresh Drupal 8 installation (with Migrate Drupal and Migrate enabled)
  • Drupal 7 database access from your Drupal 8 host
  • Access to the files of the source site

#Do Deprecation Checks for Drupal 9 Upgrades

If you upgrade to Drupal 9, take advantage of correction tools and deprecation checking.

Make sure that the code editor or IDE you use understands deprecations. You can do deprecation testing with drupal-check. This is a standalone PHP executable that reports on deprecated codes you use.

You should also consider full site reporting with the Upgrade Status. Specifically, look at the Drupal 8 branch. You can also do deprecation testing on drupal.org. There are two testing methods that the system supports. Rector is yet another option. It offers automated deprecation fixes.

#Should You Upgrade to Drupal 8 or Drupal 9?

When you go through the effort of an upgrade, you may wonder whether to complete a Drupal 7 to 8 migration or go to Drupal 9. At the time of writing, we suggest starting with a Drupal 8 upgrade. This method will maximize your coverage for modules.

That is particularly important because some Drupal 9 modules are still in development. Many already exist, but not all. This means that if you were to upgrade to Drupal 9, you'd have to do a lot of custom development.

For now, we suggest upgrading to Drupal 8. Once all the critical modules you need are ready, then can make the upgrade to Drupal 9.

The nice thing about upgrading to Drupal 9 is that it's meant to be very easy, similar to a Drupal minor update (ie going from Drupal 8.8 -> 8.9).

We have helped more than 10 non-profit and higher education organizations plan and implement their Drupal 7 to 8 upgrades.

Contact us for a free migration audit for your Drupal website.