2011-11-04 49 views
14

我在Gemfile下面幾行:Heroku的不接受推,即使我有源碼開發塊

gem 'rails', '3.1.1' 

group :production do 
    gem 'pg' 
end   

group :development, :test do 
    gem 'sqlite3' 
end 

我也跑bundle install有我Gemfile.lock更新。

當我推到我的Heroku仍然出現以下錯誤:

! 
!  Failed to install gems via Bundler. 
!  
!  Detected sqlite3 gem which is not supported on Heroku. 
!  http://devcenter.heroku.com/articles/how-do-i-use-sqlite3-for-development 
! 
!  Heroku push rejected, failed to compile Ruby/rails app 

我缺少什麼?

+1

是否在推送前捆綁+提交? – apneadiving

+0

是的。我檢查了Gemfile和Gemfile.lock – Besi

+0

投票結束爲「不再可重複」,因爲問題只是原始海報[將錯誤的分支推送到Heroku](http://stackoverflow.com/a/8007353/456814)。 – 2014-05-25 21:11:01

回答

25

Hoppla。我在這裏犯了一個相當愚蠢的錯誤。我目前正在一個分支上工作,但是我把主分支推到了Herokum,就像我習慣的那樣。

因此git push heroku master確實推送了舊版本的分支,當然不包含我對Gemfile的更改。

+1

這幫助我認識到,在我的應用程序中對Gemfile進行了更改之後。我忘了將更改推送到github,然後將它們推送給heroku主人。一旦我這樣做了,這個項目就被推到了heroku,並且一切都奏效了。 – gtemma11

+1

同一個!謝謝! –

10

我在開發塊中有sqlite3,但是我最近安裝了mailcatcher,這是一個有用的gem,用於捕獲已發送的電子郵件並在瀏覽器中顯示給您。

mailcatcher具有sqlite3作爲依賴性。移回其所屬解決了這一問題:

group :development, :test do 
    gem 'sqlite3' 
    gem 'mailcatcher' 
end 

如果你有這樣的錯誤,但肯定不包括sqlite3外的發展模式,尋找需要它的其他寶石。

+1

幫助了很多謝謝,我忘了我最近安裝了mailcatcher。我也在所有環境中都加入了'寶石'薄'。 – veritas1