Migrating to Drupal 10 from Drupal 7

Migrating to Drupal 10 from Drupal 7 kp37
Drupal Version

Migration, not upgrade

Drupal 8, released in November of 2015, was a major rewrite of the underlying Drupal code (Drupal's core engine and APIs). Because of the multitude of changes, there is no direct in-place upgrade path to go from any earlier version of Drupal to Drupal 8 or later. Instead, Drupal 7 and earlier sites must be migrated to Drupal 8 or later, which involves setting up a whole new Drupal 8 website and copying into it (manually or automatically) the content of the older website.

All Drupal 7 sites that are to remain on Drupal should be migrated to Drupal 10, the latest version of Drupal.

Requirements and Web Hosting Support

Drupal 10 requires a hosting environment running at least PHP 7.4 or later, which is available on OIT Web Hosting. OIT does not currently support the use of Drush or command line access to Composer. However, the Plesk control panel GUI allows for composer set up and management.

The easiest way to get started with the Georgia Tech branded version of Drupal 10 is to request an installation from OIT. You can select this option when requesting a new OIT Web Hosting account, which is usually the best way to go.  In short, you would set up a new site in a new hosting account using a temporary domain name, and then once you have copied over all of your existing content, you would shut down your old site and repoint your real domain name to the new hosting account. 

Note

If this sounds a little too technical for you, you should consult with your local IT support staff, who should be able to help you through anything concerning domain names and repointing them.

Georgia Tech Migration Roadmap

Beyond PHP support, each Georgia Tech unit website will need several extra components to be fully usable. The following table is an attempt to start tracking the status of the components needed for Georgia Tech Drupal 9 sites, and it will be updated as releases and additional information come available.

Status of common Drupal 7 components in Drupal 10
(Last Updated April 21st, 2021)
Component NameAvailable
for
Drupal 10?
Comments?
Georgia Tech Web ThemeYes

An official Institute Communications Drupal 9 theme is available.

Please see the Georgia Tech Web Theme section for more information on the status of Drupal 10 theme development.

GT Account AuthenticationYesCAS module v1.0 is fully usable and CAS configuration instructions are available.
Mercury News and EventsYesAn official port of the official Hg Mercury is available.  It uses a feeds approach (creating nodes for each news or event item) that is different from the Drupal 7 module approach.  Testing in a development environment is recommended to gain familiarity with how to configure and manage the Drupal 10 module.
GT Content TypesNo

Vertical, Horizontal, and Multipurpose page types are not going to be ported to Drupal 8. Such pages will have to be rebuilt in Drupal 8+. Alternative page layout systems include:

GT Drupal Express (DX)No

A Drupal 10 installation is available for Drupal 10 websites installed through OIT Web Hosting - GT Drupal Express (DX) for Drupal 9. Please note that this is not be a direct replacement (or direct upgrade path) for existing Drupal 7 DX sites.

Drupal 7 DX developers should plan for a manual content migration to Drupal 10, as it is unlikely that a script will be developed to aid DX migrations to Drupal 10.

A Drupal Express migration strategy guide is under development.

Web FormsYes

The traditional Webform module was been completely rewritten for Drupal 8 and is much more capable (and more complex) than the old version. Existing users should treat it like a new product and go through all available getting started and training guides and videos before trying to build a form with Drupal 10.

Drupal 9 itself comes with a limited Contact Form functionality and a handful of contrib modules (such as Contact Storage) are available to extend that functionality, though not to the level found in the traditional Webform module. Contact forms are recommended for simple RSVP and feedback forms.

Complete Migration Process

Kevin Pittman has posted a guide to migrating from Drupal 7 to Drupal 10 that includes a lot of planning tips and technical details.

Drupal Express (DX) to Drupal 10 Upgrade/Migration Strategies

Drupal Express (DX) to Drupal 10 Upgrade/Migration Strategies kp37
Drupal Version

Many Georgia Tech websites have been built using Drupal Express (DX), which is a custom version of Drupal that allows you to create a website with little technical or design expertise. The ready-made site comes with built in features and tools like news and events listings, and mobile optimization.  The Office of Information Technology offers Drupal Express as an option when requesting a new web hosting account.  Selecting this option causes Drupal Express to be pre-installed in the account so that the unit can start using the site almost immediately without having to do any technical work on the back end of the site.

In spite of the continued use of the name, there is very little technical similarity between Drupal Express for Drupal 7 (we'll call this Drupal 7 Express) and the current Drupal Express for Drupal 10 (we'll call this Drupal 10 Express).  If you are running a Drupal 7 Express site, you will need to completely rebuild your site in Drupal 10 or another content management system.  This is a good time to assess your site and determine if it might be a better fit for something like Sites@Georgia Tech - OIT's article "Is Drupal the right choice of CMS for my site?" goes into some of the pros and cons of both Drupal 10 and Sites@Georgia Tech.

If you choose to move forward to Drupal 10, the following guidelines and tips will help you plan for a manual site migration from Drupal 7 Express to Drupal 10 Express:

  • Vertical, Horizontal, and Multipurpose page types are not going to be ported to Drupal 10 and will not be copied over by the Drupal Migrate tool. Such pages will have to be completely rebuilt in Drupal 10 using the new layout system called Layout Builder.
     
  • Drupal 7 Express sites may still benefit from using the Drupal Migrate tool to at least bring over their Basic Page content. Bear in mind that some amount of clean-up will be necessary after using Migrate, but the clean-up may be easier than cutting and pasting a lot of Basic pages into your new site.

    Kevin Pittman has posted a detailed Drupal Migration guide that describes how to use the Migrate tool.  (The guide is labeled for migrating to Drupal 8, but the concepts still apply when migrating from Drupal 7 to Drupal 10.)
     
  • Other components included in Drupal Express may not be available for Drupal 10 or may have been superseded by new components. A breakdown of known Drupal Express components and their status is posted below.

In case you are enlisting the help of someone with technical developer skills who would like to know more about the make-up of Drupal Express and what to expect when migrating a Drupal Express site to Drupal 10, below is the full list of components included in Drupal Express (excluding minor ones no longer needed in Drupal 8+) and their known Drupal 10 status.

Please note that just because a module has a production version, this does not mean that it works the same as it did in Drupal 7 or that it supports all of the features in the Drupal 7 version.  Please read the documentation for each module to see what has changed.

Custom Drupal Express components and their Drupal 10 status
(Last Updated March 1st, 2022)
Component NameAvailable
for
Drupal 10?
Comments?
Georgia Tech Web ThemeYesAn official Institute Communications Drupal 10 theme is available.
GT SuperblocksNoNo port planned or expected of this custom module
GT EditorNoNo port planned or expected of this custom module, but the built-in CKEditor provides much of the same functionality and can be customized as needed
GT LoginNoNo port planned or expected of this custom module, but the CAS module is part of Drupal 10 Express and provides GT Account Username based authentication.  CAS configuration instructions are available.
GT ToolsYesThe official Drupal 10 Georgia Tech theme has it's own required "GT Tools" module that provides support for some of the theme's features.
HG ReaderYesAn official port of the official Hg Mercury is available.  It uses a feeds approach (creating nodes for each news or event item) that is different from the Drupal 7 module approach.  Testing in a development environment is recommended to gain familiarity with how to configure and manage the Drupal 10 module.
JWFilterSupersededJWFilter was for the old OIT DMI media repository that is no longer available.  Please use the Ivan Allen College's Support for oEmbed module for embedding videos from the new Georgia Tech MediaSpace repository
Contrib (Third Party) Drupal Express components and their Drupal 10 status
(Last Updated November 1st, 2021)
Component NameAvailable
for
Drupal 10?
Comments?
Admin MenuSupersededUse Admin Toolbar
Admin ViewsIn Drupal 8+ Core 
Block ReferenceSupersededUse the built in Entity Reference field
CKEditorIn Drupal 8+ Core 
CToolsProductionNot required by any previous Drupal Express modules in Drupal 8
Custom SearchBetaFrom the Custom Search project page: "The 8.x-1.0-beta branch is usable, and instead of overriding the default search block like it did with D6/7, it provides its own block(s)". Not recommended for use (not being updated by maintainer)
DateIn Drupal 8+ Core 
DiffProductionSee the Diff project page
Field GroupProductionSee the Field Group project page
Google AnalyticsProductionSee the Google Analytics project page
IMCEProductionSee the IMCE project page
IMCE MkDirSupersededNow part of the main IMCE module
LibrariesDevelopmentNot required by any Drupal 10 Express modules
LinkIn Drupal 8+ Core 
LinkItProductionSee the LinkIt project page
Menu BlockProductionSee the Menu Block project page
Module FilterProductionSee the Module Filter project page
NodeblockSuperseded"Node" blocks can be created in Drupal 8+ by creating a custom block type and adding an Entity Reference field configured to reference node content
Override Node OptionsProductionSee the Override Node Options project page
PathautoProductionSee the Pathauto project page
PathologicNo 
RevisioningIn Drupal 8+ CoreReplaced by the combination of Workflows and Content Moderation.
TokenProductionSee the Token project page
TransliterationNoA filename transliteration patch for Drupal 8+ core is available if you want to have filenames transliterated, but that patch hasn't been committed to production core yet.  It has been rolled into a Transliteration Filenames module.
Video Embed FieldProductionSee the Video Embed Field project page
View UnpublishedProductionSee the View Unpublished project page
ViewsIn Drupal 8+ CoreExisting views do not migrate to Drupal 8+, but can be recreated by hand
Views Bulk OperationsProductionSee the Views Bulk Operations project page
WYSIWYG FilterIn Drupal 8+ Core