我需要在最近的项目中每小时进行一次数据库备份。所以我使用了spatie/laravel-backup,其中还有scheduling process的文档。这意味着我可以每小时保留一次备份数据库。我已经按照文档进行了调度并执行了相同的过程。但是数据库没有保留备份。
我已成功安装它,因为每当我运行以下命令时,它都会创建一个备份数据库。
php artisan backup:run
但是对于调度,我在kernel.php中的schedule函数中添加了以下行作为文档引用:
$schedule->command('backup:run')
->hourly();
但什么都没发生。如果有人有包安排,请帮我找到错误。谢谢!
答案 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:
'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\;
php artisan backup:run
在控制面板中 - >管理工具 - >任务计划程序创建指向您的bat(ch)文件的基本任务,并在所需的时间安排它
在创建任务中输入开始(可选) laravel项目的路径(例如:C:\laragon\www\laravel_project_name\
)
答案 2 :(得分:0)
您需要授予777访问存储文件夹的权限。之前我也遇到过同样的问题,所以我给日程表指定了emailOutputTo,然后我收到了一个带有如下异常的邮件:
在TemporaryDirectory.php第42行中:
mkdir():权限被拒绝
因此,请在服务器上使用chmod -R 777 storage /
然后查看是否有效!