laravel-backupを利用して、DBのバックアップを生成

laravel-backup を利用すると ソースファイルデータベース のバックアップを簡単に作成することができます。ここでは laravel-backup の基本的な利用方法について紹介します。

インストール

下記コマンドでパッケージをインストールします。

composer require spatie/laravel-backup

configファイル生成

下記コマンドを実行すると config/backup.php が生成されます。

php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
$ php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
Copied File [/vendor/spatie/laravel-backup/config/backup.php] To [/config/backup.php]rovider"
Copied Directory [/vendor/spatie/laravel-backup/resources/lang] To [/resources/lang/vendor/backup]
Publishing complete.

設定

一部テーブルを除外する

DBのバックアップ対象外とするテーブルを指定することができます。

config/database.php を編集します。

'mysql' => [
    
    (省略)
    
    'dump' => [
        'excludeTables' => [
            'table_to_exclude_from_backup',
            'another_table_to_exclude'
        ]
    ]
],

上記のように excludeTables で、対象外にするテーブルを指定します。

バックアップの格納先を変更する

config/backup.phpdisks でバックアップの格納先を指定します。

<?php

return [

    'backup' => [

        (省略)
        
        'destination' => [

            (省略)

            /*
             * The disk names on which the backups will be stored.
             */
            'disks' => [
                'local',
            ],
        ],

        (省略)
        
    ],
];

config/filesystems.phpdisks で設定済みの内容から選択します。

https://docs.spatie.be/laravel-backup/v6/taking-backups/overview#determining-the-destination-of-the-backup

バックアップ実行

全て

php artisan backup:run でバックアップを取得できます。

$ php artisan backup:run
Starting backup...
Dumping database test-app...
Determining files to backup...
Zipping 6113 files...
Created zip containing 6113 files. Size is 157.5 MB
Copying zip to disk named local...
Successfully copied zip to disk named local.
Backup completed!

今回は、ローカルにバックアップファイルを生成するようにしています。

$ ls -lrt storage/app/TestApp/
total 163904
-rw-rw-r--. 1 502 xxxx 165151230 Jan  9 02:35 2019-01-09-02-34-10.zip

DBのみ

DBのみバックアップを取得したい場合、--only-dbオプション を指定して実行します。

$ php artisan backup:run --only-db
Starting backup...
Dumping database test-app...
Determining files to backup...
Zipping 1 files...
Created zip containing 1 files. Size is 3.81 MB
Copying zip to disk named local...
Successfully copied zip to disk named local.
Backup completed!
$ ls -lrt storage/app/TestApp/
total 167804
-rw-rw-r--. 1 502 xxxx 165151230 Jan  9 02:35 2019-01-09-02-34-10.zip
-rw-rw-r--. 1 502 xxxx   3993593 Jan  9 02:38 2019-01-09-02-38-52.zip

参考

わくわくBank.
フリーランスのエンジニアとして活動してます。ここでは、ソフトウェア開発で必要とされる技術、用語、概念を整理しています。