Craft CMS をコマンドラインでアップデートする方法をご紹介します。
Craft CMS 本体やプラグインをアップデートするには、管理画面でアップデートする方法と、コマンドラインでアップデートする方法があります。
個人的には、管理画面でアップデートすると、少し非力なレンタルサーバーだとエラー(メモリ不足やタイムアウト)になることが稀にあるので、コマンドラインで実行することが多いです。
コマンドラインでアップデートするときは、 craft update コマンドを使います。
まずは craft update コマンドでアップデート内容を確認します。下記のコマンドは、cd コマンドで Craft CMS のインストールされているディレクトリに移動してから実行します。
./craft update
すると、例えば以下のようにアップデート可能な一覧が表示されます。
$ ./craft update
Fetching available updates ... done
You’ve got 10 available updates:
- craft 3.3.16.1 => 3.4.17
- cp-body-classes 2.1.1 => 2.2.0
- cp-css 2.2.0 => 2.2.1
- cp-js 2.2.0 => 2.2.1
- feed-me 4.1.2 => 4.2.1.1
- field-manager 2.1.0 => 2.1.5
- logs 3.0.2 => 3.0.3
- relabel 1.3.4 => 1.3.5
- reverserelations 1.1.5 => 1.1.8
- venveo-bulk-edit 1.1.1 => 2.0.4
Run craft update all or craft update <handle> to perform an update.
上記のようにリストアップされたもの全てをアップデートするには ./craft update all を実行します。
./craft update all
僕はどちらかというとこちらの方法を利用します。万が一アップデートが失敗した時、その原因追求が楽だからです。
個別にアップデートするには、下記のようにハンドル名を付けてアップデートします。
./craft update cp-body-classes
なお、特定のバージョンにアップデートする方法は「craft コマンドで特定のバージョンにアップデートする方法」を参考にしてください。
上記のようにアップデートすると、「Backup the database? (yes|no) [yes]:」と聞かれますのでエンターを押します(デフォルトが yes のため)。
ただ、シェルスクリプトの中でアップデートを実行したり、複数の Craft CMS をアップデートするときなどはこの確認は邪魔になります。
そのような時は、下記のように --backup=1 --interactive=0 オプションを付けることで、自動でバックアップを取って、何も質問することなくアップデートを終わらせてくれます。
./craft update all --backup=1 --interactive=0
以上です。