rashed/database-backup

用户磁盘上的数据库自动备份

dev-master 2016-08-09 12:01 UTC

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();