rashed / database-backup
用户磁盘上的数据库自动备份
dev-master
2016-08-09 12:01 UTC
Requires
- php: >=5.5.9
- nesbot/carbon: ~1.21
This package is not auto-updated.
Last update: 2024-09-14 19:20:08 UTC
README
为 Laravel 5.2 用户提供的数据库自动备份功能 ## 安装
Db-backup 是一个 Laravel 扩展包。您可以通过 composer 安装它。在项目目录中运行以下命令
composer require 'rashed/database-backup':'dev-master'
## 配置
设置 Web 服务器上数据库备份的目录。在 .env 文件中添加 DB_BACKUP,如下所示
####DB_BACKUP=目录名
下载完成后,在 app.php 文件的 providers 部分添加以下行
\Rashed\Backup\DbBackupServiceProvider::class,
###publish
现在从终端运行以下命令
php artisan config:clear
composer dump-autoload -o
这将发布此包所需的所有文件。
现在在 app/Providers/EventServiceProvider.php 文件中 $listen 变量中添加以下行。
'Rashed\Backup\Events\DbBackupEvent' => [
'Rashed\Backup\Listeners\DbBackupEventListener',
],
用法
Event::fire(new \Rashed\Backup\Events\DbBackupEvent());
注意
- 使用此事件在本地磁盘上导出数据库。
- 此事件将数据库存储在用户的机器上,并从服务器上删除。
- 如果您想定期在服务器上存储数据库,请确保首先进行配置。 定期备份 .
####schedule-backup
此选项需要配置使用任务调度在服务器上自动备份数据库。要使用此选项,您必须在服务器上添加一个 cron 条目。
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
添加后,在 app/Console/kernel.php 文件中添加以下行
use Rashed\Backup\Commands\Backup;
并在 $commands 变量中添加以下行
Backup::class,
然后在 schedule()
函数中添加满足您要求的调度器。
例如,如果您想每 30 分钟备份一次数据库,请编写以下代码
$schedule->command('Backup')->everyThirtyMinutes();
如果您想每 10 分钟备份一次数据库,请编写以下代码
$schedule->command('Backup')->everyTenMinutes();