コラム
2023/01/24

Drupal9へのアップグレード ②

  • CMS

Drupal9へのアップグレード ② 前回はDrupalCoreのバージョンアップについて説明しました。
今回は拡張モジュール/テーマやカスタムモジュール/テーマのDrupal9対応について説明します。
本作業はDrupalCoreのバージョンアップ前に実施する必要があります。

  1. Drupal9へのアップグレード ①
  2. Drupal9へのアップグレード ②

作業の流れは以下になります。

  • 拡張モジュール/テーマがDrupla9に対応しているか確認し、対応したバージョンがあればアップデートする。
  • カスタムモジュール/テーマをDrupal9に対応させる。

まず、導入しているモジュール/テーマがDrupal9に対応しているか確認します。
導入しているバージョンがDrupla9に未対応であっても、Drupal9に対応したバージョンがあればアップデートします。

Drupal9の対応状況を確認するツールとして「Upgrade Status」というモジュールを使用します。
モジュールをインストールし有効化すると、「レポート > Upgrade status」を参照できます。

サンプルとしてローカルに作成したDruplaサイトの「Upgrade Status」ページ(一部抜粋)をのせます。
詳細は「Upgrade Status」(https://www.drupal.org/project/upgrade_status)のページを参照してください。

※尚、環境によってページ内容の情報は異なります。

Drupal9へのアップグレード ②-1

簡単な確認手順を説明します。
いくつかの表がありますが、いずれも同じ情報(項目)が表示されています。
Drupal9の対応情報は「LOCAL 9-READY」を確認します。「Compatible」と表示されているモジュールは既にDrupal9対応のバージョンが使用されています。
「Incompatible」と表示されているモジュールをすべて「Compatible」にすると、Drupal9へのアップグレードが可能になります。

作業を行う際、「PLAN」「DRUPAL.ORG VERSION」「DRUPAL.ORG 9-READY」の情報を確認します。
「DRUPAL.ORG 9-READY」に「Compatible」と表示されているモジュールは、Drupal9に対応したモジュールが用意されていますので、該当のバージョンに更新することでDrupal9対応が行えます。
この際、「PLAN」に表示されている内容を参考にするとよいでしょう。

「DRUPAL.ORG VERSION」が「Not applicable」と表示されているモジュールはDrupal9に対応されていません。
この場合は「Issues」リンクをクリックしてみましょう。該当モジュールに関するissues一覧のページに遷移します。
一覧の中にDrupal9対応の情報の記載があれば、パッチ適用等によりDrupal9に対応させることができます。

※今回の例では以下を実施しました。

Configuration split 最新はバージョン2だがbeta版。バージョン1.5以上がDrupal9に対応しているので、1.5以上に更新。
composer require drupal/config_split:^1.5
CSV importer バージョン1.11に更新。
composer require drupal/csv_importer:^1
Honeypot 最新のバージョン2に更新。
composer require drupal/honeypot:^2

対応バージョンやパッチがない場合、または、カスタムモジュール/テーマの場合は以下を実施します。

該当モジュールの左にチェックボックスにチェックを付け、画面下部の【Scan selected】ボタンをクリックします。
対応が必要な場合、「LOCAL SCAN RESULT」にリンクが表示されます。
リンクをクリックすると、ダイアログにて修正箇所が表示されます。

Drupal9へのアップグレード ②-2

対象ファイルと行番号、修正内容が表示されますので、内容を確認し、ソースを修正します。

※尚、同様のチェックは「Drupal Check」(https://github.com/mglaman/drupal-check/wiki/Drupal-9-Readiness)でも行えます。

※今回の例では以下を実施しました。

Sample Themeの修正箇所

page.inc

使用メソッドを変更。

修正前:$node = \Drupal::entityManager()->getStorage('node')->load($node_id);

修正後:$node = \Drupal::entityTypeManager()->getStorage('node')->load($node_id);

テーマ.info.yml

バージョン情報を追記

修正後:core_version_requirement: ^8 || ^9 ※追記

対応が完了したら、再度、該当モジュールの左にチェックボックスにチェックを付け、画面下部の【Scan selected】ボタンをクリックします。

Drupal9へのアップグレード ②-3

Drupal9対応が完了したモジュールは「LOCAL 9-READY」が「Compatible」と表示されます。
これで、Drupal Coreをアップデートすることが可能となります。

使用している拡張モジュールによって画面表示等も変わってきますので、今回の内容をひとつの参考にして頂ければと思います。

WEBSASくん
  1. <<
  2.   
  3. 1
  4.    
  5. 2
  6.  
  7. >>