This is the guide for updating our themes from Drupal 10 to Drupal 11. Please note it applies to our Symphony themes only, it may not work with themes from other providers.

0. Prerequisites:

Ensure your environment matches Drupal 11 requirements: https://www.drupal.org/docs/system-requirements

And you can access to terminal with composer

1. Update your site to Drupal 10.3 and update all modules

Using terminal, go to your project folder and run this command:

composer update drupal/* -W

It will update Drupal core and all modules to latest versions

Upgrade drush as well by removing and reinstalling it

composer remove drush/drush

composer require drush/drush

2. Install Upgrade Status module

composer require drupal/upgrade_status

drush en upgrade_status

Now on Admin - Reports - Upgrade status, you will see how ready the site is

For example on this particular site, the readiness is 79% and some issues are listed below:

3. Update modules

On Update section, two modules Metatag and Video Embed should be upgraded to newer version to support Drupal 11. Just open the links on Drupal.org version column, then copy and paste the installation commands, such as:

composer require 'drupal/metatag:^2.1'

composer require 'drupal/video_embed_field:^3.0@beta'

drush updatedb

Refesh the Upgrade status page, you will see these issues gone

4. Update custom themes

Now on the Scan section, it reports two themes are not yet compatible. Since they are all our themes and they pretty much work with Drupal 11, just open /themes/custom/[theme-name]/[theme-name].info.yml , and find this line:

core_version_requirement: ^10

Change it to

core_version_requirement: ^10 || ^11

Clear the cache, you will see those issues on Upgrade Status gone

5. Update special modules

On Collaborate with maintainer section, there is one module which has not yet been compatible with Drupal 11.

It is Insert Block module that we use extensively with our themes. But it has been patched by us to work with Drupal 11

So please edit composer.json on the root project folder, REMOVE this line:

"drupal/insert_block": "^1.0@beta",

Edit /modules/contrib/insert_block/insert_block.info.yml and do the same as on Step 4, find this line:

core_version_requirement: ^8.8 || ^9 || ^10

Change it to

core_version_requirement: ^8.8 || ^9 || ^10 || ^11

Or you can download our patched version here and replace it at /modules/contrib

Refresh Upgrade Status, if you see 100% readiness, it is good to do the upgrade now

6. Upgrade Drupal core to 11

Now follow the official guide (Section 4) to upgrade to Drupal 11:
https://www.drupal.org/docs/upgrading-drupal/upgrading-from-drupal-8-or-...

Temporarily add write access to protected files and directories:

chmod 777 web/sites/default

chmod 666 web/sites/default/*settings.php

chmod 666 web/sites/default/*services.yml

Update the required versions of the core-recommended packages. We use --no-update to avoid a chicken-and-egg problem with mutual dependencies:

composer require 'drupal/core-recommended:^11' \

                 'drupal/core-composer-scaffold:^11' \

                 'drupal/core-project-message:^11' --no-update

Now, test perform the update to the code itself with the --dry-run option:

composer update --dry-run

If there is no issue, run:

composer update

composer install

Update the database with drush

drush updatedb:status

drush updatedb

When complete, restore read-only access to the sites/default directory:

chmod 755 web/sites/default 

chmod 644 web/sites/default/*settings.php

chmod 644 web/sites/default/*services.yml

Now you can uninstall Upgrade Status module, it is no longer needed.

Good luck upgrading.

AttachmentSize
insert_block.zip13.14 KB

Subscribe to our mailing list

* indicates required