在实际项目中,为了防止数据的丢失,我们需要备份数据库,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
这个命令,需要确定此命令已经安装,以及它的安装路径。
可以使用which mysqldump
拿到路径,在本地开发和生产环境可能略有不同,此处建议在.env
文件中定义一个DUMP_BINARY_PATH
来保存开发环境的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
清除失效的备份文件。
定时任务
配合liux,laravel的schedule可以让系统自动备份
在Console/Kernel.php
文件中添加
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:clean')->daily()->at('01:00');
$schedule->command('backup:run')->daily()->at('02:00');
}
执行crontab -e
命令,添加
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
基本的使用已经介绍完了,更多的资料请参考官方文档