Migrating Your Clients to Drupal 10? Here's What You Need to Know
Need to Know
- Migration to Drupal 10 presents unique challenges, particularly for those currently using Drupal 7
- Starting with an audit helps identify areas requiring significant work and facilitates accurate time estimates and client discussions
- Our in-house Drupal experts are available to help with every migration challenge and ensure a successful transition
Since its release in December 2022, Northern developers have been hard at work helping our clients complete their migrations to Drupal 10. Though some say that the upgrade is one of the easiest in Drupal’s history, we find that every migration presents its own unique challenges, especially for those who may be using Drupal 7.
Keep reading to find out how our experts are mitigating some issues they have come across
Start with an audit. It can be tempting to dive right into migration to save the additional hours an audit will add to the job. But there are a couple of good reasons to take the time — for one, it’s a great way to figure out which areas will require the most work to upgrade. Certain modules, themes, and custom functionalities could be less compatible with Drupal 10, and an audit can help you to flag any issues to prioritize upfront.
The second reason to perform an audit is to aid in client discussions and to create an accurate estimate of how long the migration will take. If your client wants you to share a written report with them, this is a great starting point from which you can write your findings in plain language.
Our experts recommend these resources to help you get started:
- The Drupal Upgrade Status module will report which modules have new versions available, and flag those without. Once you’ve installed it, you can visit the Upgrade Status page at /admin/reports/upgrade-status
- Acquia created an interactive Drupal 10 deprecation status summary, which you can use to check the statuses of Drupal 10 modules.
- The Drupal Rector and PHP Codesniffer tools will automatically check the codebase for deprecated code and can even attempt to fix it with automated refactoring tasks. In addition, they can also check for PHP 8.1 compatibility, which Drupal 10 requires, so this will also be necessary for upgrading.
If you require the Classy theme as the base theme for your site, we recommend installing the contrib version, as it has been moved out of the core in Drupal 10.
For issues with specific modules, we recommend the following:
- CKEditor has come standard in core since Drupal 8, but thanks to a complete rewrite of the software it is likely to have some issues when upgraded from 4 to 5. Additionally, many existing plug-ins used by Drupal modules are unavailable in CKEditor 5 due to new changes in the way plug-ins are created.
As a temporary solution, you can postpone CKEditor issues by enabling CKEditor 4 via the contrib module. Version 4 will reach the end of life at the end of 2023, so this resolution will only work in the short-term while you replace other modules or make the necessary updates to enable CKEditor 5. Some contrib modules such as CKEditor Anchor Link are already supporting this workaround.
Many sites are currently using the 1.x version of the GTranslate module, and will have to update to 3.x in Drupal 10. You will most likely encounter fatal errors on any pages with the block because its configuration changed significantly and there is no update hook. This is easily fixable by re-importing config from the module using Drush eg. drush cim --partial --source=modules/contrib/gtranslate/config/installand then manually reconfiguring it.
For sites using Entity Embed, the dev version currently supports Drupal 10. There’s also the option to migrate existing content and references to core Media — this contrib module offers help with that migration.
- If a module does not have Drupal 10 support, you have a few options. You may be able to find a replacement module that has similar features and is supported by Drupal 10. Another option is to check the issue queue for Drupal 10 compatibility patches or merge requests to leverage prior to an official Drupal 10 supported release. If a suitable replacement isn’t available, you may have to port the module to Drupal 10 yourself, or remove it altogether.
After completing the upgrade to Drupal 10, thoroughly test the site again and remediate any issues. This process will be different for every site, but a good place to start is by testing critical functionalities, content entry and modules that made large version leaps or functional changes in the upgrade process.
As we’ve already covered, every migration is unique, but we hope that these tips will help as you work on the updates. If you’d like some help, many of our Northern developers contribute to Drupal core and generate and maintain modules that improve user and administrator experiences on the platform. You can contact us for further resources and assistance.