Drupal 9 is no longer maintained since November 2023.
Migration to Drupal 10 has therefore become imperative to continue to benefit from security updates and the latest features.

Drupal 10 logo

Reminder of major Drupal versions and their migration to Drupal 10

Migration from Drupal 7 to Drupal 10 is not possible, as the technical architecture is too different. A complete overhaul of the site, directly in Drupal 10, is necessary.
Migration from Drupal 8 to Drupal 10 is possible, but you’ll first need to migrate from Drupal 8 to Drupal 9. The migration procedure is virtually identical to that for Drupal 9 to Drupal 10, as described in this article.

What’s new in Drupal 10

Optimized performance, better caching and improved database performance. Your site will be faster and more responsive, which in turn will improve SEO.

Claro administration theme (replacing Seven) to improve and facilitate site management.

Olivero’s default theme (replacing Bartik) to quickly create an attractive site without having to create a custom theme.

Replacement of CKEditor 4 by CKEditor 5 for smoother content creation.

Modern JavaScript components to replace certain uses of jQuery.

Theme Starterkit tool for creating custom themes.

Based on Symfony 6 (replacing Symfony 4) and PHP 8.1 to take advantage of the latest PHP features and enhancements, for improved performance and enhanced security.

How do I migrate from Drupal 9 to Drupal 10?

As with the move from Drupal 8 to Drupal 9, the transition from Drupal 8 to Drupal 9 will take place via the usual minor version upgrade mechanism.

Step 1: Preparation

Before you start migrating, make sure your site is up to date with the latest version of Drupal 9. This will ensure that you have all the security and functionality updates you need before moving on to Drupal 10.

Make a full backup of your Drupal 9 website. This includes the database, configuration files, media files and all content. In the event of a problem, you’ll always be able to go back.

Step 2: Install the Drupal upgrade_status module

The upgrade_status module is a verification tool that helps you identify compatibility problems during migration.
You can install it using Composer:
composer require drupal/upgrade_status
After installing the module, activate it in extensions.

Step 3: Run the upgrade_status analysis tool

After activating the upgrade_status module, go to /admin/reports/upgrade-status. There you’ll find a detailed report indicating the problems that need to be corrected before you can perform the Drupal 10 upgrade.

Example of an upgrade_status report

In this report you will find :

  • Environmental prerequisites
  • List of modules that are not activated and can therefore be removed from the site
  • The list of contrib modules for which there are currently no Drupal 10-compatible updates
  • List of contrib modules to be updated for compatibility with Drupal 10
  • List of modules or custom themes to be scanned for compatibility issues that need to be corrected
  • The list of contrib modules that are compatible with Drupal 103 in their current state.

In short, at this stage you’ll have a clear picture of the work required to complete the migration.

Step 4: Update development, acceptance and production environments

Environment requirements for Drupal 10

Web server
Apache 2.4.7 or higher, Nginx 1.1 or higher, or any other Web server supporting PHP.

Database
MySQL 5.7.8 or higher
MariaDB 10.3.7 or higher
Percona Server 5.7.8 or higher
PostgreSQL 10 or higher
SQLite 3.26 or higher

Memory
Memory requirements RAM: the minimum memory requirement is 1 GB to ensure that Composer runs smoothly. If you run several modules or use memory-hungry tools such as Solr or Memcache, much more memory may be required.

PHP
PHP version : Drupal 10 requires at least PHP 8.1. PHP 8.1.6 is recommended.
PHP extensions required: PDO, XML, GD-library, OpenSSL, JSON, cURL, Mbstring.

Step 5: Solve the problem

Carefully examine the report generated by upgrade_status and resolve all the problems detected. This may involve removing or updating certain modules, replacing obsolete modules with alternatives, or rewriting custom code that is no longer compatible with Drupal 10.

Step 6: Upgrade Drupal to version 10

Once you’ve solved all the problems, you can upgrade to Drupal 10. You can use Composer to perform the upgrade:
composer update drupal/core-recommended --with-dependencies

Step 7: Repeat the analysis with upgrade_status

Go to the upgrade_status module page and run a new analysis to make sure there are no more compatibility problems after migration to Drupal 10.

Step 8: Test your site

After upgrading to Drupal 10, perform thorough tests to make sure everything is working properly. Be sure to check that all your site’s modules and functionalities are working properly.

Digiwin support on Drupal

Do you have any questions about this article?
Would you like us to help you migrate from Drupal 8 or 9 to Drupal 10, or completely redesign your site in D7?
The Digiwin teams are at your disposal. Contact us now!