With Drupal 7’s end-of-life date extended to November 2023 and Drupal 8’s end-of-life coming sooner this November of 2021, it’s safe to assume that most Drupal 7 users will be skipping Drupal 8 and heading straight to Drupal 9.
Both Drupal 8 and 9 (and likely the versions after) significantly shifted the way content and configuration are organized. Instead of the traditional route of simply applying an update to your existing Drupal 7 site, you’ll have to migrate all of your data to a brand new Drupal 9 site.
But where do you even begin? How does a data migration work? How can you effectively prepare for Drupal 7’s end-of-life date? We will answer these questions and more in our Drupal 7 to 9 migration planning guide.
Table of Contents
- Drupal 7 to 9 Migration: Step by Step Process
- 5 Things to Consider Before Migrating Drupal 7 to 9
- Common Challenges During the Drupal 7 to 9 Upgrade
Learn more about Kanopi’s extensive experience with Drupal development.
Drupal 7 to 9 Migration: Step by Step Process
So, you’re ready to begin the Drupal 7 to 9 migration process.
Below is a quick overview of the steps you’ll be taking:
- Create a complete site audit of your Drupal 7 site. A site audit is used to learn about the current state of a website and determine if you need to perform any maintenance. This complete audit should include all types of functionality and entity types (Modules, Content types, Taxonomies, Paragraphs, etc).
- Identify the content types and structure of the existing site and document the items to be migrated. During your audit, you should come up with a list of all the data that needs to be migrated to your new site. Get rid of anything broken or duplicated so that your Drupal 9 site is ready to go.
- During this time you should also identify what pieces should be manually recreated. Views, webforms, and content types with a small number of entries are much quicker to build by hand.
- Create a modules checklist of your Drupal 7 site to identify custom code and missing contrib functionality. Modules are the best way to customize the Drupal CMS to your specific needs. Sometimes specific modules may have been customized or are not yet compatible with a Drupal version, so this is worth noting beforehand. Also, look for any custom modules that don’t come from the community contrib space. These may have good alternatives that are contrib for Drupal 9, or they may have to be custom-built to work with the CMS.
- Start the migration progress. There is a suite of contrib modules that help empower developers to create the files and scripts needed for migration. A custom migration module should be made for each site, creating the fields, content types, and entities on the new Drupal site.
- Theme your new site and complete additional manual work. This includes choosing a theme, organizing content, and other customizations.
- Test your new Drupal 9 site. Now that everything is successfully migrated, it’s time to put your Drupal 9 site into action! If your team runs into issues, you should roll back and re-test.
5 Things to Consider Before Migrating Drupal 7 to 9
Don’t start the migration process just yet! There are a couple of things you can do beforehand to make the migration process much smoother and easier to implement.
We recommend the following best practices:
- Ensure your Drupal 7 website is at the latest version — This makes upgrading much cleaner. Some of your existing modules will even have direct Drupal 7 to 9 upgrade paths.
- Make sure you have access to both your Drupal 7 public and private website data — This is the data that you’ll be migrating, so having easy access to all of it is crucial if you want to successfully upgrade your CMS. This includes all your uploaded private and public files, too.
- Create a backup of your Drupal 7 website — Even if you do everything perfectly, it’s worth it to take the steps to prepare in case of an accident. Make sure to create a backup of your Drupal 7 site before you start the migration process. Then, use that backup as the source of your upgrade. This way, if something happens and you lose data in some way, you still have your original site to refer to.
- Download a fresh installation of Drupal 9 and enable the core migrate modules — The modules in the core include Migrate Module. Migrate Drupal Module, Migrate Drupal UI Module, and Migrate Tools Module.
- Perform a thorough content audit for a smoother migration — you already know that you should perform a site audit, but in particular, a content audit is valuable. This helps you determine the content that you want to migrate and get rid of unused content and complexity that you don’t need.
Why You Shouldn’t Opt for a Drupal 7 to 8 Migration
Still not convinced that going straight to Drupal 9 is your best bet? After all, you already know that Drupal 8’s end-of-life date is coming up, much sooner than Drupal 7’s. Even if you do successfully upgrade to Drupal 8, you’re going to have to do another upgrade to Drupal 9 in November of 2021 when 8 is no longer supported.
If you’ve already made the switch to Drupal 8 before the news of 7’s end-of-life extension, don’t worry—the process from 8 to 9 is fairly simple. Updating from the most recent version of Drupal 8 to Drupal 9 is more like a minor upgrade than the massive migration effort that Drupal 7 to 8 or 7 to 9 entail.
If you are migrating from Drupal 8 to Drupal 9, ensure that your site is on the latest Drupal 8 version (8.9 as of this writing), that your hosting environment meets minimum system requirements, and that all your deprecated code is removed.
Common Challenges During the Drupal 7 to 9 Upgrade
To ensure you’re fully prepared to start this process and begin anew on a Drupal 9 site, it’s worth it to address the common challenges and obstacles you may face. Getting a good idea of the pitfalls that others have stumbled upon will only help you better avoid them.
Here are the common challenges you should be aware of:
- Many Drupal 7 contributed modules have better versions of themselves in Drupal 8+ and some have even been deprecated. If a frequently used module has less functionality in Drupal 9, you might consider finding a different solution.
- Some of the best practices used to build sites have changed in Drupal 8/9, with some pieces moving into the core and some pieces replaced by other modules. Some of these are:
- The widely used Features module in Drupal 7 is now almost obsolete after Configuration Management took over all the Features functionality and more for Drupal 8+.
- The Field collections module has been deprecated and replaced by the widely popular Paragraphs module, for which there is a direct upgrade path.
- Instead of panels of landing pages, Drupal 8 and 9 use the Layout builder. This may need some custom migration plugins.
- The Media suite of contrib modules has now been moved into the core.
- When running a Drupal 7 to 9 migration, you may exhaust your system resources, which causes your migration to stop. Thanks to “highwater marks,” a field value in Drupal Migrate, you can run the migration again and it should pick up from where it left off.
If you stumble upon any other challenges that you don’t know how to tackle, your best bet is partnering with a dedicated technology consultant.
Our professionals at Kanopi are experts in Drupal planning and development and can aid you in your migration journey. Each of our team members has, on average, 11 years of experience in Drupal Development, and several of them are Acquia-certified. We also are a supporting partner to the Drupal Association, regularly contribute to the Drupal Project, and are one of the main organizers of BADCamp.