2021/12/15

Laravelでバックアップ処理を実装する

目次
  1. Laravel-backupをインストール
  2. 設定ファイル作成
  3. バックアップの保存先の指定
  4. バックアップ実行
  5. 古いバックアップファイルの削除
  6. 定期的にバックアップを実行する

LaravelでソースコードやDBのバックアップを取りたい場合は

Laravel-backupを利用するのが便利なので実装方法を記載していきます。

Laravel-backupをインストール

$ composer require spatie/laravel-backup

設定ファイル作成

$ php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider

実行すると「/config/backup.php」という設定ファイルが作成されます。

バックアップの保存先の指定

デフォルトではバックアップはローカルに保存されるようになっています。

今回はこれをS3に変えてみます。

'destination' => [
             (省略)
            /*
             * The disk names on which the backups will be stored.
             */
            'disks' => [
                 // local
                's3', 
            ],
        ],

バックアップ実行

$ php artisan backup:run

上記コマンドの実行でソースコードとDBをS3にzip形式で保存してくれます。

ちなみに以下のコマンドだとDBのみのバックアップを取ることも可能です。

$ php artisan backup:run --only-db

古いバックアップファイルの削除

バックアップを取り続けているとストレージの容量を圧迫してしますので古いファイルから削除していきたいです。

Laravel-backupではその機能も用意されており、以下のコマンドを実行すれば古いファイルを削除してくれます。

$ php artisan backup:clean

定期的にバックアップを実行する

/app/Console/Kernel.phpに毎日実行するように登録します。

$schedule->command('backup:clean')->daily();
$schedule->command('backup:run')->daily();

これで毎日バックアップをとるようになりました!

いざという時に困らないようバックアップは常に取得しておきましょう!