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();

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

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

関連記事


icon-loading

AWS Elastic Beanstalk で Laravel を動かしてみた

AWS Elastic Beanstalk の使い方をご紹介しながら Laravel を動かしてみます。 公式ドキュメントを読んで「動かない...」となった方も、本記事を読めば大丈夫です。 NGINX の設定ファイルを事前に配置、ソースコードを適切にZIP化、 Amazon RDS を追加...といった手順を踏んでいきます。

icon-loading

Laravel環境構築(Mac編)

Mac端末にPHPフレームワーク「Laravel」の環境を構築します。 ローカル環境でLaravelを実行するところまで確認していきます。

icon-loading

EC2からS3にcronでバックアップ

とりあえずEC2のこのディレクトリをS3にバックアップしといてと言われたあなたへ

icon-loading

3 Essential Checks in Laravel

Get bugs in production but ran perfectly in development? How to avoid "Divide by zero", "Trying to get property of non-object", other common Laravel PHP errors.

icon-loading

Laravel キャッシュクリアコマンド

他の開発メンバーが実装したコードが動かない...そんなとき、一度落ち着いて実行して欲しいLaravelのキャッシュクリアコマンドをまとめました。