spatie / laravel-backup:调度不起作用

时间:2016-07-28 02:49:27

标签: php laravel laravel-5 database-backups

我需要在最近的项目中每小时进行一次数据库备份。所以我使用了spatie/laravel-backup,其中还有scheduling process的文档。这意味着我可以每小时保留一次备份数据库。我已经按照文档进行了调度并执行了相同的过程。但是数据库没有保留备份。

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

php artisan backup:run

但是对于调度,我在kernel.php中的schedule函数中添加了以下行作为文档引用:

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

但什么都没发生。如果有人有包安排,请帮我找到错误。谢谢!

3 个答案:

答案 0 :(得分:0)

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

对于Windows,您应该执行以下操作:

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

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

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

答案 1 :(得分:0)

在Windows 7 Professional(64位)环境中成功测试,环境:Laragon 2.1.6,Laravel 5.3。*,PHP php-7.0.10-Win32-VC14-x86,MySQL mariadb-10.1.9:

  1. 编辑 config / database.php ,例如来自spatie的文档:
  2. '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', ... ],

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

    2. 对于变量名称路径,最后为变量值添加此项(php.exe和mysqldump.exe需要) ):

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

      1. 在您的Laravel项目根目录中使用以下行创建bat(ch)文件:
      2. php artisan backup:run

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

        2. 创建任务中输入开始(可选) laravel项目的路径(例如:C:\laragon\www\laravel_project_name\

          < / LI>

答案 2 :(得分:0)

您需要授予777访问存储文件夹的权限。之前我也遇到过同样的问题,所以我给日程表指定了emailOutputTo,然后我收到了一个带有如下异常的邮件:

  

在TemporaryDirectory.php第42行中:

     

mkdir():权限被拒绝

因此,请在服务器上使用chmod -R 777 storage /

然后查看是否有效!