在heroku rails中强制捆绑更新

时间:2017-03-24 04:17:08

标签: ruby-on-rails ruby git heroku

我们说我有2个codebases / git repos。 project A and gem B

项目A使用gem B。

以下是项目A Gemfile中的条目。

gem 'B', git: 'https://yashdfjwehrlhkhklbRrKwgNq:x-token-auth@bitbucket.org/pwa-abcde/B.git', branch: 'dev/B-api'

今天我对gem B进行了一些更改并将其推送到git。

但是project A永远不会得到此更新,因为它已经使用旧版本的gem。

我的主要项目(A)托管在heroku中。

现在我的疑问是我如何强制heroku获取宝石的最新变化?

2 个答案:

答案 0 :(得分:2)

您可以通过以下两种方式实现:

  1. 设置ref代表Gemfile中的提交哈希而不是branch名称并运行bundle install。现在,当你再次推送到heroku时,它将获取正确的提交。

    gem 'B', git: 'https://yashdfjwehrlhkhklbRrKwgNq:x-token-auth@bitbucket.org/pwa-abcde/B.git', ref: 'commmit-hash'
    
  2. gem B更改的提交创建新分支并设置新分支。

  3. 这种情况正在发生,因为您没有对Gemfile中的任何更改进行pusdev / B-apih。如果bundle installGemfile发生任何变化,Heroku将运行Gemfile.lock

答案 1 :(得分:0)

不要在Heroku的bundle update内运行Project A,而是先在本地运行bundle update。这将更新您的Gemfile.lock。测试Project A是否仍按预期在本地运行 然后提交并将新的Gemfile.lock推送到Heroku。