在實(shí)際項(xiàng)目中,為了防止數(shù)據(jù)的丟失,我們需要備份數(shù)據(jù)庫(kù),laravel-backup這個(gè)package正好符合我們的需求。
安裝
composer require spatie/laravel-backup
在 config/app.php下添加
Spatie\Backup\BackupServiceProvider::class
生成config/laravel-backup.php配置文件
php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
配置
需要使用mysqldump這個(gè)命令,需要確定此命令已經(jīng)安裝,以及它的安裝路徑。
可以使用which mysqldump拿到路徑,在本地開(kāi)發(fā)和生產(chǎn)環(huán)境可能略有不同,此處建議在.env文件中定義一個(gè)DUMP_BINARY_PATH來(lái)保存開(kāi)發(fā)環(huán)境的mysqldump路徑
在config/databases.php下配置
'connections' => [
'mysql' => [
'driver' => 'mysql'
'dump' => [
'dump_binary_path' => '/path/to/the/binary', // only the path, so without `mysqldump` or `pg_dump`
]
],
使用
配置完成之后,使用php artisan backup:run生成備份文件,使用php artisan backup:clean清除失效的備份文件。
定時(shí)任務(wù)
配合liux,laravel的schedule可以讓系統(tǒng)自動(dòng)備份
在Console/Kernel.php文件中添加
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:clean')->daily()->at('01:00');
$schedule->command('backup:run')->daily()->at('02:00');
}
執(zhí)行crontab -e命令,添加
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
基本的使用已經(jīng)介紹完了,更多的資料請(qǐng)參考官方文檔