• Home
  • Craft CMS
  • Craft CMS をコマンドラインでアップデートする

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

以上です。