Update Thunder 2 -> Thunder 3

Prerequisites

These are the instructions to manually update your existing Thunder 2 installation to Thunder 3. If you want to do a fresh installation of thunder please visit install Thunder. The most significant change is the migration to media in core. But we also made some changes to our composer.json.

You have to make sure, that your Thunder 2 project and all it's dependecies, are fully updated to the most current versions. Run the following command in your docroot:

drush ev "print drupal_get_installed_schema_version('thunder') . PHP_EOL;"
1

This should print the number 8138 or greater. If that is not the case, update your project.

cd ..
composer update
1
2

This should update to Thunder 8.2.47 or greater.

Now run database updates:

cd docroot
drush updb
1
2

You should at least see the thunder 8138 schema update. If not, double check that the correct version of Thunder is installed, and that drush updb did not throw any errors.

Composer adjustments

We switched from bower-asset to npm-asset for our frontend-libraries. In order to get the libraries downloaded to the correct location, please replace

"installer-types": ["bower-asset"],
1

by

"installer-types": ["bower-asset", "npm-asset"],
1

in the composer.json of your project and add "type:npm-asset" to the "docroot/libraries/{$name}" section in installer-paths.

We moved the composer package under the thunder namespace, so remove the old package and a the new one.

composer remove burdamagazinorg/thunder
composer require "thunder/thunder-distribution:~3.3" --no-update
1
2

You have to update composer now.

composer update
1

We removed some modules from our codebase. In case you are using one of below mentioned modules please require them manually for your project.

composer require drupal/views_load_more --no-update
composer require drupal/breakpoint_js_settings --no-update
composer require valiton/harbourmaster --no-update
composer require drupal/riddle_marketplace:~3.0 --no-update
composer require drupal/nexx_integration:~3.0 --no-update
composer require burdamagazinorg/infinite_module:~1.0 --no-update
composer require burdamagazinorg/infinite_theme:~1.0 --no-update
1
2
3
4
5
6
7

Update Facebook instant articles integration

In case you are using the fb_instant_articles module, please note that the RSS feed url will change and therefore needs to be updated in the facebook account.

When updating while fb_instant_articles is enabled, there will be an error message like The "fiafields" plugin does not exist. Valid plugin IDs for Drupal\views\Plugin\ViewsPluginManager are: ... this is due to invalid configuration present in the system before the update and can safely be ignored.

Pre-requirements for media update

First we should make sure that the latest drush version is installed.

composer require drush/drush:~10.0 --no-update
1

After that the following steps should be done for the update:

composer require drupal/media_entity:^2.0 drupal/media_entity_image drupal/video_embed_field:^2.2
1
  • Make sure that you use the "Media in core" branch for all your media_* modules. (For the media modules in Thunder, we take care of that)
  • Make sure that all your code that uses media_entity API is modified to use the core media API.

See here for more information:

Execute media update

All you need to do now is:

drush updb
drush cr
1
2

Cleanup codebase

Now the update is done and you can remove some modules from your project.

composer remove drupal/media_entity drupal/media_entity_image
1