皆さんこんにちは、休みの日でも会社のサーバーの微妙なパフォーマンスアップするチューニングとかをして遊ぶ大野です。
Drupalのコアのアップグレードって皆様どうしてますか?私は一昔前まで適当にファイルを上書きしてただけなんですけど、実はその方法って非推薦なんですよね。今回は本番環境での使用は非推薦だけど、さらっと最新のDrupalコアに置き換えてくれるDrushを使ってアップグレードする方法を解説します。
注意事項
Drushを使ったアップデートではコアに含まれるファイル全てが自動的に最新の物に置換されます。コアファイルに手を加えている場合、それらの変更は全て破棄されますので下記の注意事項をよく理解した上で実行してください。
- Drupalのコアファイル全てが最新のファイルに置換されます。
- .htaccessやrobots.txtファイルは上書きされます。これらのファイルを変更している場合は、アップデート前にバックアップして、アップデートされたファイルを元に再度作成する必要があります。
- Drushはこの機能の本番サーバー上での利用を推薦していません。
よく標準のテーマをカスタムしている事がありますが、その場合も破棄されるのでご注意ください。
バックアップ
動かなくなったら困りますので、バックアップを取りましょう。今回はせっかくですのでDrushを使ってバックアップを取ります。対象のディレクトリへ移動して下記のコマンドを実行します。
$ drush archive-dump
このコマンドでサイトに含まれる全てのファイルとデータベースをダンプしたファイルがtar.gz形式に圧縮されて保存されます。ちなみにバックアップされたファイルは通常 ~/drush-backups/archive-dump フォルダに保存されます。
実行方法
drush upコマンドはモジュール等のアップグレードにも使うこともできますが、今回はDrupalのアップグレードのみに絞って解説します。
対象のディレクトリへ移動して下記のコマンドを実行します。
$ drush up drupal
コマンドを実行すると確認用のコマンドプロンプトが現れますので、yを入力すればアップデートが始まります。
Name Installed Version Proposed version Message
Drupal 7.2x 7.2x アップデートが利用可能です
Update information last refreshed: 201x/xx/xx
Code updates will be made to drupal core.
WARNING: Updating core will discard any modifications made to Drupal core files, most noteworthy among these are .htaccess and robots.txt. If you have made any modifications to these files, please back them up before updating so that you can re-create your modifications in the updated version of the file.
Note: Updating core can potentially break your site. It is NOT recommended to update production sites without prior testing.
Do you really want to continue? (y/n): y
アップグレードが無事終わればデータベースのアップデートも自動的に行われます。
いかがでしたでしょうか。面倒なアップグレード作業をさらっとやってくれる代わりに、編集した.htaccessファイルなども機械的に上書きしてくれる諸刃の剣的な方法ですが、ちゃんと仕組みさえ理解していればかなり早くアップグレードをすることができます。慣れないうちに本番環境でDrushでアップグレードする事は大変危険ですので、テスト環境で十分練習してから利用してください。
また次の機会にDrushを使ったモジュールのアップグレード方法も解説したいと思います。
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。