前回(2022/5/20)は、Drupalについてざっくりと紹介をしました。
今回はDrupalのアップグレードについて書いていきます。
2021年にリリースされたDrupal9が、2023年11月にサポート終了となるため、
記事のネタにしちゃえという魂胆です。さくさくいきます。
環境
■アップグレード前
Drupal9.5.10
lando v3.18.0(v3.6.0以降PHP8.1対応)
PHP8.1
■アップグレード後
Drupal10.1.2
lando v3.18.0
PHP8.1
※Drupalの管理画面から現在使用しているバージョンを確認する場合は、
画面上部のツールバーから、「レポート」⇒「サイトの状態」で確認できます。
アップグレード前の確認
まずは現在使用しているモジュールなどが、アップグレード後でも使用できるかを確認します。
アップグレードしたバージョンと互換性がなくて、今まであった機能が使えなくなるのは嫌ですよね。
手順
1.Upgrade Statusというモジュールをインストールします。
このモジュールは、サードパーティーのPHPライブラリに依存するため、
コマンドライン(Macはターミナル)でインストールする必要があります。
2.インストールできたら、ツールバーの「レポート」⇒「Upgrade Status」へ遷移します。
3.画面内の、黄色、赤で表示されているモジュールやPHPなどをアップデート、
不要であれば削除します。
【Upgrade Status の項目について】
■ 更新
更新可能なモジュールなどが表示されます。
更新は、「レポート」⇒「利用可能なアップデート」の「更新」タブから行えます。
■ 削除
Drupal10に互換性のないモジュールなどが表示されます。
削除する場合はコマンドで削除できます。
■ Drupal core and hosting environment
Drupalを構成する環境情報が表示されています。ここの「状態」は全てチェック状態にします。
(上記画像の赤い部分では、PHPのバージョンについて言及されてます。)
■ Compatible with next major Drupal core version
Drupal10と互換性があり、アップグレードしても問題ないモジュールなどが表示されています。
特に何もしなくて大丈夫です。
Drupal10へアップグレード
いよいよDrupalをアップグレードします。
内容としては、Drupalコア(本体)のアップグレード、DBのアップデートを行います。
手順
1.drupal 10.1.2を開いて、用途に合ったコマンドをコピーします。
今回はインストール欄に3つある内の C のコマンドを使用します。
// A.新しいプロジェクトを作成する
composer create-project drupal/recommended-project:10.1.2 "install-dir"
// B.現在リリースされている最新バージョンに更新する
composer update "drupal/core-*" --with-all-dependencies
// C.バージョンを指定して更新する
composer require drupal/core-recommended:10.1.2 drupal/core-composer-scaffold:10.1.2 drupal/core-project-message:10.1.2 --update-with-all-dependencies
B
のコマンドでも恐らく可能ですが、以前Drupal9系がインストールされてしまった経験があるので、
バージョンを指定してインストールします。
2.1でコピペしたコマンドを実行
【エラー】
画像のようなエラーが出てしまったら下記コマンドで書き込み権限を付与して、
もう一度1のコマンドを実行してみてください。
(ドキュメントルートは自身のものに書き換えてください。)
chmod u+w ドキュメントルート/sites/default
3.最後にデータベースのアップデートを行います。
トップページのURL末尾に /update.php を付けて開きます。
例:https://www.demohoge.com/update.php
すると、データベース更新の画面に遷移するので、バックアップなど問題なければ「継続」を押します。
問題なく終わったらグレードアップ完了です。
あとはサイトが閲覧できるか、エラーが起きていないかなど確認したら終わりです。
お疲れさまでした。
おわりに
ここまで読んでいただいてありがとうございます。
またいつか執筆することがあるかもしれないので、その時は興味なくても読んでみてください。
まだまだ暑いので皆様お体ご自愛下さい。
ロジカルスタジオではエンジニアを募集しています。
Drupal等のバックエンド技術を用いて開発をしたい!という方は、是非採用サイトからご応募ください!