Blog Insights
Navigating Your Upgrade from Drupal 7
Are you ready to upgrade your organization’s Drupal 7 website? Now is a great time to get the ball rolling on navigating your upgrade from Drupal 7, as well as an opportunity to tackle your team’s larger website wishlists.
At Forum One, we work with a great many nonprofits and government agencies that run their websites on Drupal. Drupal allows them to customize complex workflows, as well as design and develop based on audience needs—all the while being flexible enough to optimize over time. As Drupal 7 aims to sunset in 2023, the latest version of Drupal 9 ships with new features including a built-in media library and content workflows and a new layout builder. These tools enable content creators to robustly manage large volumes of content and easily create pages with flexible layouts that connect with target audiences.
That being said, probably the most challenging part of taking on such an upgrade is knowing how to navigate through the various steps and options. As your organization looks to upgrade to Drupal 9, here are the biggest ticket items to consider along the way.
Planning for a Drupal upgrade
Before actually embarking on your Drupal upgrade, take a step back to consider what works well on your current website, and what needs to improve in the next iteration.
Specific items to consider are:
- What pain points do you have when it comes to editing content, creating landing pages with complex layouts, or reusing content?
- Are there any situations that have required you to “break the rules” to publish content using custom HTML? Have you had to get creative and use a content type for something other than what it was designed to do?
- Have your content needs significantly changed since the site was built? What content do you wish you could publish but currently aren’t able to?
- Is there any functionality or content that exists on the site which you definitely don’t need anymore?
- What do you love about your current website that you want to replicate or expand?
Choosing the right content migration plan
There are a number of ways you could go about upgrading your Drupal 7 site. The product of every Drupal upgrade is a website that runs the latest version of Drupal Core and Drupal modules, with a frontend theme that uses the updated framework.
One of the most important aspects of the upgrade process is migrating your content, especially if you have a lot of it. Each content migration method comes with pros and cons and provides more or less an opportunity to make changes to your site’s structure.
Here are your three main options:
A. Upgrade automatically with Migrate suite
The Migrate suite of modules allows you to run one command to automatically create a Drupal 9 site that replicates your Drupal 7 site configuration and import all of the content.
While this may sound like a perfect and easy plan, this method is typically suited for simple sites that do not rely on many contributed modules, as well as sites that don’t use custom modules to extend Drupal’s behavior. Important to note: this automated method preserves the content types and field configurations exactly as you have them in Drupal 7, so you cannot make content model updates.
B. Manually upgrade Drupal, then automatically migrate content
A nifty feature the Migrate suite provides is the ability to ‘dry run’ the upgrade command. Instead of actually configuring the site and importing content, you can run the command with an option to generate the configuration files needed to run the automatic migration.
This method allows you to take a hybrid approach to your upgrade. First, you manually rebuild the site in Drupal 9, taking advantage of all the new features available. While doing this, you can make changes to your content types and fields to ensure they’re in line with your organization’s needs moving forward.
Once the new Drupal site is set up, you can use the configuration generated by the upgrade command as a starting point for an automated content migration. You’ll need to update the configuration to make sure content from Drupal 7 is being migrated to the correct fields and content types.
C. Manually upgrade everything
If the website you’re re-building is fairly small and has a small amount of content, you may want to do a manual migration. This may save time and money if the time it takes to manually re-create the content in the upgrade site is less than the time it would take a developer to configure the migration scripts to map fields from the old site to the new site. This approach is also an option if you want to completely refresh your old content and start from scratch.
Upgrade Method | Pros | Cons |
Fully automated | The Migrate suite is advanced enough to re-create your content model and import content into it. | You cannot adjust your content model or implement new features from later versions of Drupal. |
Hybrid | An opportunity to take a step back and assess your content model to remove cruft and get the most out of Drupal’s new features and functionality. | While baseline configuration can be generated by the upgrade command, manual development work is needed to make sure data maps correctly to the new fields. |
Manual | Provides an opportunity to re-envision your content model and become familiar with the new site as you are manually creating content. | Only feasible for sites with a limited amount of content or organizations that want to start from scratch with their content strategy. |
Preparing for migration
Once you’ve selected a migration approach, there are a few steps you can take to make the process easier.
- If you’re planning to update the content model on the new site, document all the fields on the old site, and map where this content should be migrated to on the new site. This is especially important if you opt for a hybrid migration.
- Unpublish any old content and identify content types that don’t need to be migrated.
- Take an inventory of content that is “unique” or doesn’t follow the same pattern as other pieces of content that use that content type. Make sure you have a plan for how to migrate this content.
During the migration
Regardless of the migration approach you choose, you will likely want to implement a “content freeze” while the migration is ongoing. Essentially, you choose a date when you’ll take a snapshot of the current live site and use that as the source for your migration. Any changes made to the live site during the migration process should be manually implemented once the migration is finished.
Even if you choose a fully or partially automated migration approach, there is usually some content migration or content cleanup that is more efficiently completed manually. Depending on the scope of this manual work, make a plan for how you will complete those manual steps.
Post-migration considerations
Congratulations! You have a shiny new site running the latest version of Drupal and you’re ready to launch. Once you’ve launched the site, here are some habits you’ll want to include in your routine going forward:
- Keep a close eye on your 404 reports. For example, did a really popular piece of content move to a new URL without a redirect?
- Maintain up-to-date documentation. Ensure the new system you’ve built is being used how you designed it to be used. As you implement new features or make changes, update the documentation.
- Keep your modules up-to-date. If you’ve migrated to Drupal 8, the migration to Drupal 9 or 10 should be very straightforward if you keep your modules up-to-date and incrementally fix any issues that may be introduced as new versions of modules are released.
Challenges and opportunities
Since Drupal 7 has been around for about 10 years, you may have some pretty sophisticated features implemented on your site with custom modules. Since Drupal 9 is built on the Symfony framework, a lot of this custom code will need to be updated or completely rewritten. In some cases, you may be able to replace this functionality with contributed modules or new features added to Drupal Core.
For sites that have complex content models or are using modules like Panelizer for custom layouts, there isn’t an automated migration path available in the migration suite. As an example, we recently worked with the Environmental Protection Agency (EPA) to upgrade their site, including an automated migration of content from Panelizer into Layout Builder. The migration suite doesn’t provide a path for migrating from Panelizer to Layout Builder automatically, so we leveraged the migration toolset and wrote custom plugins. For a deeper dive into how we accomplished this, check out my presentation from Drupal Camp Asheville.
Your next steps
As you look to embark on your own Drupal upgrade from 7 to 9 or 10, the above are the right steps to take and questions to ask as you’re getting started. Drupal’s strengths lie in its ability to provide a robust yet flexible platform to house your organization’s digital footprint, and so taking that next step to its most updated platforms will allow you to continue to optimize and improve your website’s impact.