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.
| Attachment | Size |
|---|---|
| insert_block.zip | 13.14 KB |
