Performing Drupal 9 Content Migration

October 2, 2020 | 4 Minute Read

Tags: Drupal 9 , Migrations , Drupal

Importance of data and how to execute the content migration

The Open Source CMS necessitated a thorough audit of the site while performing a significant migration from Drupal 7. And with Drupal 7 approaching End-Of-Life, Drupal developers and site owners are now looking in the direction of migrating their content to the latest available version, i.e., Drupal 8.9. Further, the coming of Drupal 9 (built within Drupal 8 with backward compatibility), makes the content migration more important now. 

In this blog, we will consider the importance of content migration and how to plan its execution. 

Maintaining Data Integrity

When a website version becomes outdated, the current site's database requires changes to accommodate the updated code. 

One of the important characteristics to consider includes SEO and accessibility. A significant number of sites get impacted due to elements such as meta descriptions, Alt text, and other factors that determine the accessibility of the site to the users. Therefore, maintaining and updating data integrity is one of the crucial tasks under site migration.

It is often known that migrating content can affect your SEO ranking and traffic, especially if you own a media or publishing site. So, make sure you don't pile up the content migration tasks and perform it wisely. 

What Does Content Migration Require?

Content migration demands looking out for all the new features and developments that might affect your content. As Drupal 8 came along with the standardization of Symfony, Twig, and PHP 7, the migration from Drupal 7 is no less than a complete rebuild. 

Here are some prerequisites to help you deliver a more powerful, robust and flexible digital experience: 

  • Do away with unused and irrelevant content to save yourself time and effort while migrating. 
  • Keep the access to your current Drupal website’s database and all files in order to have it running and accessible later.   
  • Do not forget to create a backup of your Drupal 7 website.
  • Download the fresh installation of Drupal 8 and enable the core Migrate modules. 
  • The migration path isn’t direct. It is recommended to get the hang of Drupal 8’s migration system. 
  • Choose your migration path: Drush or the browser user interface.
  • Utilize the Drupal content migration system’s flexibility and extract the content from older versions of Drupal or sources like CSV, XML, JSON, MySQL, etc.

Start with a Plan

Depending on the content size and configuration on the source site, the upgrade might take time. If the number of nodes is small, your Drupal team can perform it manually. However, if it amounts to hundreds, thousands, or millions of nodes, it becomes quite tedious. Therefore, it is essential to be prepared in advance.

Let’s plan the execution now:

Step 1: Identify the content types and content structure of the existing site and document the observations. 

Step 2: Identify a list of modules that you need, and check if there is a Drupal 8 version of those modules, or if the modules have moved to Drupal 8 Core.

Step 3: Replicate the content types, taxonomies, and all the entities that you need in your Drupal 8 instance and build the views manually later. This step provides greater flexibility to tweak our content architecture and refactor content types, taxonomy as per the usage in older systems. That offers significant clarity related to content migration. 

Migration Modules

Drupal 8/9 has migration modules in the core itself. In Drupal core, we have modules like migrate, migrate_drupal, migrate_drupal_multilingual and migrate_drupal_ui. The Migrate module provides a framework to migrate content from various sources to Drupal 8/9. For Drupal to Drupal migrations, we need to use the migrate_drupal module. Together, these modules provide overall migration support to migrate the content from Drupal 6/7 sites to Drupal 8/9.

Apart from these modules, we might need to implement a custom migration path for the contributed modules that we are using. Typical Drupal sites consist of many contributed modules, so we need to review data related to those modules and write a migration path for those modules to migrate data. You can refer to the Migration API to write custom migrations.

Migration UI modules like migrate_drupal_ui provide UI support to review migrations. It offers various features like credential support to provide source database credentials, overview form and other necessary features to run the migrations via UI.

In conclusion, the Drupal 8.9 version is not far from Drupal 9 version and do not include too much hassle while migrating the content or enabling the modules. They can make most tasks automated and easily manageable with ready-to-use modules. 

Need to know more about Drupal 9 to be convinced?
Here's the ultimate guide: Migrate from Drupal 7 to Drupal 9 to clear your doubts.