2016-07-28 16 views
3

我需要在我最近的项目中每小时都有一次数据库备份。所以我用spatie/laravel-backup也有scheduling process的文档。这意味着我可以每隔一小时保留备份数据库。我已经跟随了文档并执行了相同的调度流程。但数据库不保留备份。spatie/laravel-backup:调度不起作用

我已经成功安装它,因为每当我运行以下命令时,它都会创建一个备份数据库。

php artisan backup:run 

但对于调度,我已经添加在日程安排功能下面一行kernel.php为DOC简称:

$schedule->command('backup:run') 
        ->hourly(); 

但是什么也没有发生过。如果任何人有安排的包裹,请帮我找到错误。谢谢!

+0

有你的Laravel安装的crontab? – cwang

+0

对不起,我不确定如何在windows中安装laravel的crontab – Hola

+0

在Windows中根本不支持schedule功能。并且该备份包依赖于时间表,所以它不会工作 – cwang

回答

0

Laravel主要是围绕Unix构建的。在这方面,Laravel文档绰绰有余。

对于Windows而言,这里是你应该做的:

  • 添加PHP可执行文件在Windows路径全局PATH变量。

  • 打开控制面板,并搜索调度程序(不要记住名称正确,但它有点类似)。

  • 现在你只需要在这里安排一个命令。这是一个非常简单的过程。

0

测试与Windows 7专业版(64位),环境中获得成功。Laragon 2.1.6,Laravel 5.3 *,PHP PHP-7.0.10-Win32的VCl 4-86中,MySQL MariaDB的-10.1。 9:

  1. 修改您配置/ database.php中像文件从spatie:

'connections' => [ 'mysql' => ['dump_command_path' => 'C:\laragon\bin\mysql\mariadb-10.1.9-win32\bin', 'dump_command_timeout' => 60 * 5, // 5 minute timeout 'dump_using_single_transaction' => true, 'driver' => 'mysql', ... ],

  • 我的电脑上点右键 - >属性 - >高级系统设置 - >高级 - >环境变量 - >系统变量

  • 对于变量名路径在月底添加此变量值(需要php.exe和mysqldump。EXE):

  • C:\laragon\bin\php\php-7.0.10-Win32-VC14-x86\;C:\laragon\bin\mysql\mariadb-10.1.19-win32\bin\;

  • 在你Laravel项目根进行蝙蝠(CH)用下面这行文件:
  • php artisan backup:run

    1. 在控制面板 - >管理工具 - >任务计划程序中创建指向您的bat(ch)文件和时间表的基本任务它在您需要的时间

    2. 创建任务放于出发点(可选)路径到您的laravel项目(例如:C:\laragon\www\laravel_project_name\