在實(shí)際項目中,為了防止數(shù)據(jù)的丟失竹捉,我們需要備份數(shù)據(jù)庫喊崖,laravel-backup
這個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
這個命令莽鸭,需要確定此命令已經(jīng)安裝,以及它的安裝路徑吃靠。
可以使用which mysqldump
拿到路徑硫眨,在本地開發(fā)和生產(chǎn)環(huán)境可能略有不同,此處建議在.env
文件中定義一個DUMP_BINARY_PATH
來保存開發(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
清除失效的備份文件。
定時任務(wù)
配合liux,laravel的schedule可以讓系統(tǒ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)介紹完了姥闭,更多的資料請參考官方文檔