【问题标题】:Detecting a failed Laravel migration in a automated script on Bamboo CD在 Bamboo CD 上的自动脚本中检测失败的 Laravel 迁移
【发布时间】:2020-10-15 15:36:47
【问题描述】:

我有一个 Laravel 应用程序的部署管道(在 Atlassian Bamboo 上)。不幸的是,当部署期间迁移失败时,artisan migrate 不会返回正确的退出代码,从而允许将部署标记为失败。

有人对这个问题有好的解决方案吗?

谢谢。

[编辑]

我正在使用 Laravel v7.17.2。

竹子关于此错误的最新错误日志

build   25-Jun-2020 08:44:41    Migrating: 2020_06_17_179512_create_invoice_payment_creditor_type_qrb
build   25-Jun-2020 08:44:41    
build   25-Jun-2020 08:44:41    In 2020_06_17_179512_create_invoice_payment_creditor_type_qrb.php line 52:
build   25-Jun-2020 08:44:41                                                
build   25-Jun-2020 08:44:41      Creating default object from empty value 

【问题讨论】:

  • 你使用的是哪个版本的 laravel?请粘贴失败迁移的输出好吗?
  • 我在 laravel v7.17.2 上。我添加了问题中最新失败的日志。 laravel 应该返回失败代码吗?错误可能与 Bamboo(部署软件)有关。谢谢
  • 请粘贴2020_06_17_179512_create_invoice_payment_creditor_type_qrb.php文件的内容
  • 我不需要帮助来修复迁移,我已经这样做了。我的问题只是迁移失败不会停止部署脚本。我怀疑迁移的内容是否会有所帮助。
  • 要么你必须确保migrate 不会失败(有...IfExists... 可用的检查),要么你必须对vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php 做一些魔术并重新创建你自己的迁移命令。由于命令只返回 0(表示良好)或 1(出现问题),因此您的选择很少。

标签: php laravel database-migration continuous-deployment bamboo


【解决方案1】:

我在 Bamboo 上构建部署管道时犯了一个错误。我在单个 ssh 任务上运行了多个命令,这意味着 migrate 命令的返回码(这不是任务的最后一个命令)没有触发错误。我现在在单独的 ssh 任务中运行每个命令。

现在对我来说很明显。

【讨论】:

    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 2019-04-28
    • 2015-02-05
    • 2016-02-16
    • 2020-07-04
    • 2019-01-27
    • 2016-06-28
    相关资源
    最近更新 更多