我遇到了一个问题:最近添加的“检查 SKIP_DB_AND_REDIS 启动能力”步骤在我的一个插件中失败了。
SKIP_DB_AND_REDIS 启动失败。请确保在 Rails 启动过程中未访问数据库。
要在本地复现此问题,请运行 `SKIP_DB_AND_REDIS=1 RAILS_DB=‘nonexistent’ bin/rails runner “puts ‘booted successfully’”`。
我尝试了该命令,但无法在本地复现该问题,它直接通过了。
我可以利用失败的 GitHub Actions 步骤中的堆栈跟踪来定位导致问题的代码。
有问题的代码
在我的一个控制器中,我声明了一个常量,用于获取某个 Active Record 的属性列表:
REWARD_FIELDS = Reward.attribute_names.excluding("id", "created_at", "updated_at")
显然,您不应该这样做。
不过,如果我能先在本地模拟这一检查就好了,这样就不必通过 GitHub Actions 进行反复试错。因此,除了执行以下命令外,肯定还有其他方法:
SKIP_DB_AND_REDIS=1 RAILS_DB='nonexistent' bin/rails runner "puts 'booted successfully'"