Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 如何在Heroku上配置/设置部署命令_Laravel_Heroku - Fatal编程技术网

Laravel 如何在Heroku上配置/设置部署命令

Laravel 如何在Heroku上配置/设置部署命令,laravel,heroku,Laravel,Heroku,我正在将我的Laravel应用程序部署到Heroku。我为连接到GitHub的应用程序设置了一个管道。我将其配置为在开发分支上发现新提交时自动重新部署。问题是我需要配置在每个部署上运行一些其他命令,例如迁移我的数据库 我找不到在Heroku UI中设置这些命令的选项。我该怎么做 我找到了Heroku的发布阶段,但我想通过Heroku仪表板配置它。在发布阶段,我必须将命令放入Procfile。很难根据环境运行和管理命令 例如,在我的测试环境中,我可能希望运行php artisan migrate

我正在将我的Laravel应用程序部署到Heroku。我为连接到GitHub的应用程序设置了一个管道。我将其配置为在开发分支上发现新提交时自动重新部署。问题是我需要配置在每个部署上运行一些其他命令,例如迁移我的数据库

我找不到在Heroku UI中设置这些命令的选项。我该怎么做

我找到了Heroku的发布阶段,但我想通过Heroku仪表板配置它。在发布阶段,我必须将命令放入
Procfile
。很难根据环境运行和管理命令


例如,在我的测试环境中,我可能希望运行
php artisan migrate--seed
,但在我的生产环境中,我可能会运行迁移,而不会对数据库进行种子设定。

您可能更喜欢通过web仪表板执行此操作,但我认为这不是一个选项。
Procfile
方法工作得很好

发布
过程添加到
程序文件
,例如:

web: vendor/bin/heroku-php-apache2 public/
release: php artisan migrate
发布阶段允许您在部署新的应用程序之前运行某些任务。发布阶段可用于以下任务:

  • 将CSS、JS和其他资产从应用程序的slug发送到CDN或S3存储桶
  • 启动或使缓存存储无效
  • 运行数据库架构迁移
如果发布阶段任务失败,则不会部署新版本,使当前版本不受影响

编辑:发布命令不适合连续集成。更好的解决方案是使用适当的CI工具。Heroku,但如果您愿意,可以使用第三方CI工具

要使用Heroku的CI工具,您需要在管道设置中启用Heroku CI,并在存储库根目录中添加或更新名为的文件。在
app.json
文件中,您可以使用它,这比简单地对数据库进行种子设定要复杂得多。例如,您可以包括Heroku插件以提供Redis节点或设置自定义环境变量


您的
require dev
依赖项将自动安装在您的测试环境中。您可以在中为数据库设定种子,并在中定义测试命令。

迁移是什么意思?数据库迁移或其他。php artisan migrateMaybe其他自定义命令可能重复的U不明白我的问题。我想在每个新部署上运行一组已配置的命令。我不是在问如何在Heroku上运行artisan。嗨,Chris,谢谢你的帮助。我编辑了我的问题,因为我发现了Heroku的版本。但我仍然在寻找一种方法,从Heroku仪表板上实现这一点。有可能吗?@WaiYanHein,正如我在回答和评论中所说的,我不相信通过仪表板可以做到这一点。我再次问:为什么要根据环境更改release命令?您不想在每个环境中运行数据库迁移吗?但对于测试环境,我可能希望运行php artisan migrate--seed。带着种子。对于生产,我可能会运行迁移而不使用seed@WaiYanHein啊,试井是不一样的。我不会使用发布命令,我会使用CI工具。Heroku确实提供了一个答案,我将相应地更新我的答案。