コラム
2024/04/17

私がDrupal9→10バージョンアップの手順と実施してみて感じたこと!!

  • CMS
  • 運用
  • 開発

私がDrupal9→10バージョンアップの手順と実施してみて感じたこと!!Drupalでは数年に1度メジャーバージョンが上がり、機能が大きく変化します。

今回、Drupal開発経験半年ほどの私が実施したDrupal9.4からDrupal10へのバージョンアップで学んだことを紹介させていただければと思います。

Drupal9→Drupal10バージョンアップ方法

バージョンアップ方法を紹介します。

手順

  • ①管理画面からレポート>Upgrade_statusを押下し、drupal10にアップグレードできないモジュールが無いか確認する。
    →ある場合は、②へ。なければ、③へ。(Relaxが100%となっていること。)
  • ②モジュールをそれぞれ検索し、drupal10に対応するモジュールがあるか確認し、ターミナルで「composer require」を用いてインストールする
  • ③ディレクトリの書き込みを一時許可する。
      
    chmod 777 web/sites/default
    chmod 666 web/sites/default/*settings.php
    chmod 666 web/sites/default/*services.yml
      
    
  • ④パッケージを取得する
      
    composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
      
    
  • ⑤下記コマンドでパッケージが入っているか確認する。
    →入っている場合は⑥へ。入っていない場合は⑦へ。
      
    composer show -i|grep drupal/recommended-project
    composer show -i|grep drupal/core-dev
    composer show -i|grep drush/drush
      
    
  • ⑥パッケージが存在する場合は存在するものを対象に下記コマンド実行する。
      
    composer require 'drupal/recommended-project:^10' --update-with-dependencies --no-update
    composer require 'drupal/core-dev:^10' --dev --update-with-dependencies --no-update
    composer require 'drush/drush:^12' --no-update
      
    
  • ⑦設定を反映させる。
      
    composer update
      
    
  • ⑧ブラウザでupdate.phpにアクセスする。
    
    ex)https://localhost:49490/update.php
      
    
  • ⑨不具合が表示されている場合は対応する。
    →今回はCKEDITORとRDFでエラーが発生しているため、左記2種類を「composer require」を用いてインストールする。
  • ⑩インストール完了後、レポート>サイトの状態からdrupal10になっていることを確認する。
  • ※デモ環境の場合はモジュール等余計なものがないため、③、④、⑤、⑦、⑧、⑨、⑩のみでアップグレード可能です。
    そのため、1回でも環境で試してみると感覚をつかみやすいと思います。

注意事項

実際にバージョンアップしてみて、バージョンアップ前後で注意しなければいけないことを記載させていただきます。

バージョンアップ前

  • rupal9.4以前のバージョンは一度9.4以上に上げる。
    Drupal9.4以前からDrupal10へいきなり上げることはできない仕様となっているため、9.4以前のバージョンであるものは9.4以上に上げる必要があります。
  • 使用しているモジュールの対応バージョンに注意
    使用しているモジュールの「Works with Drupal: ~」を確認しましょう。
    ここで、「^9 || ^10」となっているモジュールであればいいのですが、「^10」のみの場合は、drupal10バージョンアップ前にcomposer requireでモジュールバージョンを上げてしまうと、drupal9には対応していないためエラーとなってしまいます。
    この場合、一旦モジュールを削除してからdrupal10をバージョンアップした後再度モジュールをインストールする等対応が必要です。

バージョンアップ後

バージョンアップ時に特にエラー等は出ないため、下記確認が必要です。

  • CKeditorが4から5になっている
    コンテンツのテキストエディターとして標準で用意されているものです。
    CKeditorが5になり自動保管するタグのルールが変更されたことによって、画面崩れを引き起こす可能性があります。
    実際にコンテンツを確認して画面崩れがないか確認しましょう。
    解決方法としては、そもそもCKeditorを使用せず、別のエディターを使用することや、タグの記載方法を変更することが挙げられます。
  • twigの記載方法に変更が入っている
    Drupal10になったことにより、使用できなくなった構文があったりするので確認しましょう。
    特にWebform等直接CMS内にコーディングしている部分は忘れがちなので注意が必要です。

    ex1)履歴の取得方法

    Drupal10以前:

      
    {{name-revision_id}}
      
    

    Drupal10:

    
      {{name__revision_id}}
    
    

    ex2)for文内にif分をまとめて記述しているもの

    Drupal10以前:

      
    {% for for_count in count .. max_count if flg == false %}
    
    

    Drupal10:分けて記述する。

      
    {% for for_count in count .. max_count%}
    {% if flg == false %}
    
    

所感

初めてバージョンアップを実施してみて、upgrade_statusで導入しているモジュールがバージョンアップに対応しているか確認できるのが非常に便利だと感じました。

しかし、カスタムモジュールやdrupal10に対応していないモジュールがあった際に、解決方法を模索しなければいけないので、そこが大変だと感じました。

ぜひ、私のようなバージョンアップ初めての人は参考にしていただければと思います。