Drupalの管理画面からバックアップを実行できる「Backup and Migrate」モジュール


サイトの運用をしていく中でバックアップは非常に重要です。
トラブルがあった場合に適切に復旧するため、定期的にバックアップを取ったり、Drupal(CMS)本体やモジュールのバージョンアップをする前に取る必要があります。
モチヤでは現在、データベースのバックアップはサーバー上で取っています。
しかし、サーバーの管理画面はできればクライアント側で触りたくないかもしれません。
そこで、今回紹介する「Backup and Migrate」というモジュールを使えば、Drupalの管理画面上からバックアップをとったり、作成したバックアップを元にして復旧することが可能になります。
クライアント側でバックアップを取っておきたい場合に使えるので、ぜひ参考にしてください。
なお、今回試したDrupalはバージョン9.4.8で、Backup and Migrateモジュールは5.0.3を使用しています。
Backup and Migrateモジュールとは
「Backup and Migrate」モジュールは、名前の通りデータベースのバックアップと復旧を、Drupalの管理画面上でできるようにするモジュールです。
サーバーの管理画面をできる限り触りたくない場合でも、Drupalの管理画面からであれば見慣れた管理画面から比較的安全にバックアップが取れます。
また、定期的に自動バックアップを実行することもできます。
モジュールのインストール方法
「Backup and Migrate」のモジュールページにモジュールのインストール方法が書かれています。
「Releases」に書かれてあるcomposerコマンドを使ってモジュールをインストールしましょう。
モジュールのバージョンに注意
モジュールのインストール時は、現在使用しているDrupalのバージョンに適しているか確認が必要です。
サービス一覧の右側に対応バージョンが書いてあるので、使用しているバージョンに合っているか確認してからインストールしましょう。
なお、2023年4月現在だと「5.0.X」バージョンがDrupal 9に対応しており、Drupal 8には非対応、「7.X〜3.X」バージョンはDrupal 7に対応しているようです。
管理画面から有効化する場合
モジュールをインストールしたら、今度は管理画面からそのモジュールを有効化します。Drupalの管理画面メニューの[機能拡張]をクリックします。
モジュールをインストールしていると、このモジュール一覧ページに新しく「Backup and Migrate」の項目が追加されています。
チェックを入れてページ最下部の「インストール」をクリックすれば完了です。
Drushで有効化する場合
Drushを使っている場合は下記のコマンドでも有効化できます。
#「Backup and Migrate」モジュールの有効化
drush en backup_migrate
Drushのインストール方法は過去に記事にしているので、気になる方はそちらもご覧ください。
参考:ターミナルからDrupalを操作する「Drush」コマンドのインストール方法や基本的な使い方 | モチヤ株式会社
Backup and Migrateモジュールの使い方
モジュールをインストールしたら、Drupalの管理画面メニューの[環境設定]→[Backup and Migrate]をクリックします。
ここでバックアップの実行や設定ができます。
タブは全部で5つあり、それぞれ下記の設定ができます。
- バックアップ:バックアップをすぐに実行する
- 復元:バックアップファイルから復元する
- 保存済みバックアップ:保存されたバックアップ一覧を確認
- 予定:スケジュール予約一覧を確認
- 設定:バックアップの設定
バックアップをすぐに実行したい場合
[バックアップ]タブでは今すぐにバックアップを実行できます。
さらにタブが2つに分かれていて、最低限の設定で簡易的にバックアップができる[クイックバックアップ]と、詳細な設定をしてバックアップする[高度なバックアップ]の2つから選択します。
クイックバックアップ
クイックバックアップでは「Backup Source」と「Backup Destination」の2つの項目を設定するだけで簡単にバックアップができます。
「Backup Source」で何をバックアップするのかを選択します。
- デフォルト Drupal データベース
- Entire Site (do not use)
- プライベートファイルディレクトリー
- パブリックファイルディレクトリー
「Entire Site (do not use)」はサイト全体を指しますが、括弧書きで「do not use(使用しない)」と書かれている通り、現在のBackup and Migrateモジュールのバージョンは5.0.3では非推奨の機能です。
どうやら小規模なサイト以外では途中で落ちてしまい、バックアップができないようです。
今後のバージョンアップで修正されることを期待して、現状は選択しないように注意しましょう。
ひとまずデータベースのバックアップをしたいので、ここでは「デフォルト Drupal データベース」を選択します。
「Backup Destination」ではバックアップの保存先を選択します。
選択肢は直接ダウンロードするか、あらかじめ設定した「プライベートファイルディレクトリー」と呼ばれるパスに保存するかのどちらかです。
今回は直接ダウンロードしたいので「ダウンロード」を選択します。
選択したら「今すぐバックアップ」ボタンをクリックします。
しばらくすると「backup-YYYY-MM-DDThh-mm-ss.mysql.gz」のようなファイルがダウンロードされます。
このファイルを復元時に選択すれば復元されます。
高度なバックアップ
高度なバックアップでは、クイックバックアップで設定した「Backup Source」と「Backup Destination」に加えてさらに細かい設定をしてバックアップができます。
Backup File
「Backup File」ではダウンロードするファイルの名前やタイムスタンプ、圧縮形式の設定ができます。
特に気にしないのであればデフォルトのままで問題ありません。
「File Name」はファイル名の先頭につく名前です。
ちなみに「Token」モジュールをインストールすると、Tokenと呼ばれる変数のようなものをファイル名で使えるようになります。
「Append a timestamp」にチェックを入れると、「File Name」にハイフンが付いた後ろにタイムスタンプが付くようになります。
形式は「Timestamp Format」で指定できます(形式はPHPのデータフォーマットが適用されます)。
最後の「Compression」では圧縮形式を選択します。
選択肢は下記の5つです。
- なし
- No Compression
- GZip
- BZip
- Zip
Advanced Settings
「Advanced Settings」は「高度(先進的)な設定」という意味になりますが、現在のバージョンでは「バックアップ中にサイトをオフラインにしてメンテナンスメッセージを表示するかどうか」の設定だけです。
「Take site offline」にチェックを入れると、バックアップ中は「Description」に入力したメンテナンスメッセージが表示されるようになります。
Exclude database tables
「Exclude database tables」は除外するデータベーステーブルを選択します。
「Exclude these tables entirely」は完全に除外するテーブルを選択します。
「Exclude data from these tables」は選択したテーブル自体は残しつつ、そのテーブルの中身のデータだけを除外してバックアップをします。
Exclude Files from プライベートファイルディレクトリー
「Exclude Files from プライベートファイルディレクトリー」はプライベートファイルディレクトリーから除外するファイルを入力します。
1行ごとに1ファイルずつ入力します。
Exclude Files from パブリックファイルディレクトリー
「Exclude Files from パブリックファイルディレクトリー」ではパブリックファイルディレクトリーから除外するファイルを入力します。
こちらも1行ごとに1ファイルずつ入力します。
すべての入力が完了したら「今すぐバックアップ」ボタンをクリックします。
しばらくすると、クイックバックアップと同じようにバックアップファイルがダウンロードされます。
バックアップを復元したい場合
バックアップを復元したい場合は[復元]タブをクリックします。
「バックアップファイルのアップロード」で「ファイルを選択」ボタンをクリックして、先ほどダウンロードしたバックアップファイルを選択します。
「Restore To」ではバックアップの復元先を選択します(「Backup Source」で選択したものと同じ項目を選択する)。
「Take site offline」にチェックを入れると、復元中はサイトにメンテナンスメッセージを表示するようになります。
設定ができたら「今すぐ復元」ボタンをクリックします。
これでバックアップの復元が実行されます。
プライベートファイルに保存したバックアップを確認したい場合
バックアップの設定で「Backup Destination」に「プライベートファイルディレクトリー」を選択していた場合、バックアップファイルがダウンロードされるのではなく、プライベートファイルに保存されるようになります。
[保存済みバックアップ]タブではプライベートファイルディレクトリーに保存されたファイルが一覧で表示されます。
定期的にバックアップしたい場合
定期的にバックアップするように設定したい場合は[予定]タブで設定します。
スケジュールが一覧で表示されていて、新規で追加したい場合は「Add Schedule」ボタンをクリックします。
「スケジュール名」にはスケジュール内容が分かりやすい名前を入力して、「Schedule enabled」にチェックを入れると有効になります(チェックを外すと設定は残しつつ一時的に無効化できます)。
「Backup Source」と「Backup Destination」は他の場所での設定と同じように、バックアップするデータと保存先を選択します。
なお、スケジュール予約なので「Backup Destination」で「ダウンロード」は選択できません。
「周期的」で実行する頻度を指定できます。
数値を入力しつつ、下記の中から単位を選択します。
- Seconds
- Minutes
- Hours
- Days
- Weeks
「Number to keep」には保存するバックアップファイルの数を指定します。
例えばここで「3」と指定すると、最新3回分のバックアップファイルは保持して、新たにバックアップファイルが生成されると古いファイルが自動的に削除されます。
すべてのファイルを保持したい場合は空欄のままにしておきます。
設定が完了したら「保存」ボタンをクリックしてスケジュールを保存します。
よく使うバックアップ設定を使い回したい場合
「高度なバックアップ」は設定する項目が多いため、毎回設定するのは面倒ですし、前にどのような設定でバックアップしていたのか忘れてしまう恐れがあります。
また、バックアップのたびに設定していては抜け漏れの可能性もあります。
[設定]→[Settings Profiles]タブでは、よく使うバックアップの設定を保存して使い回せるようになります。
設定一覧が表示されるので「Add Settings Profile」から設定を新規追加します。
画面はほとんど「高度なバックアップ」と同じです。
設定をしたら「保存」ボタンをクリックして保存します。
保存したら[バックアップ]→[クイックバックアップ]に新たに「Settings Profile」の項目が追加されています。
ここで保存した設定ファイルを選択すれば、その設定でクイックバックアップができます。
毎回設定する必要がなくなるので、設定ミスがなくなります。
保存先のファイルディレクトリーを編集・追加したい場合
デフォルトでは「Backup Destination」をクリックすると「プライベートファイルディレクトリー」というディレクトリが表示されます。
そのディレクトリパスを変更したい場合や、他のディレクトリを追加したい場合は[設定]→[保存先]で設定します。
「Add Backup Destination」で保存先を追加します。
「Label」には「Backup Destination」で表示される名前を入力するのと、「Type」は「Server File Directory」しかないため、それを選択して「保存して編集」ボタンをクリックします。
編集画面に移動するので、「Directory Path」に保存したいフォルダのパスを入力します。
これで「保存」ボタンをクリックすれば、「プライベートファイルディレクトリー」とは別の場所に保存できます。
また、「プライベートファイルディレクトリー」を選択して「Directory Path」を変更すれば保存先を変更できます。
バックアップ場所を追加したい場合
「Backup Source」を選択したときに表示されるバックアップの選択肢を追加したい場合は[設定]→[ソース]で設定します。
「Add Backup Source」でソースを追加します。
「Label」には「Backup Source」で表示される名前を入力します。
「Type」はサーバー上のファイルをバックアップしたい場合は「File Directory」で、データベースのバックアップをしたい場合は「MySQLデータベース」を選択します。
設定したら「保存して編集」ボタンをクリックします。
「File Directory」を選択した場合は「Directory Path」項目が表示されるので、バックアップしたいフォルダのパスを入力します。
「MySQLデータベース」を選択した場合は、そのあとにデータベース情報を入力する画面が表示されます。
まとめ
クイックバックアップだけであれば、モジュールをインストールしてすぐに簡単にDrupalのバックアップができます。
しかし注意点として、このモジュールだけに完全にバックアップを任せてしまっていては、新しいDrupalバージョンにモジュールが対応していない場合に復元できなくなってしまう可能性があります。
バックアップ方法は複数あった方がリスクを分散する意味でも安心なので、1つの方法に頼り切るのではなく、サーバーのバックアップと併用するなど、選択肢を増やすという考え方がちょうど良いのではないでしょうか。
また、バックアップは何かトラブルが発生した場合の命綱といっても過言ではありません。
なんとか無理矢理バックアップを取って、いざ必要になったときに復旧がうまくいかなくて慌てるよりも、専門の知識を持った人に任せてしまうのも1つの手です。
弊社にはDrupalでの開発経験が10年以上を誇る開発者や寄与モジュールのコントリビューターなど、経験豊富な技術者が多数揃っています。
Drupalの新規導入だけでなく、バックアップも含めた既存システム保守管理に関してのご相談も受け付けています。お気軽にお問い合わせください。

モチヤスタッフ
Drupalなど技術に関する投稿をモチヤのスタッフが行っています。