我正在爲Heroku的Cedar堆棧部署Rails 3.1應用程序。使用Heroku Cedar and Rails 3.1,您可以在本地編譯資產,讓Heroku在推送時(在「slug編譯」期間)編譯它們,或者讓它們在應用程序運行時及時編譯。我想做中間選項,讓Heroku預先編譯資產。如何在Heroku上預編譯資源時普遍跳過數據庫觸摸
當Heroku運行資產:預編譯任務時,由於應用程序試圖連接到數據庫,但在該段塞編譯階段沒有數據庫可用,因此它出錯"could not connect to server"。目前缺乏數據庫連接是不可避免的。我正在尋找一種超越它的方式,因爲數據庫連接對資產預編譯並不重要。
我嘗試連接到數據庫的應用程序的一部分是Devise。 routes.rb中有一個devise_for :users
行希望查看用戶模型。
我可以寫一個rake任務,將devise_for存根並將其作爲資源的前置部分:預編譯。我認爲這將解決我的問題,但我正在尋找更通用的解決方案,我可以使用任何 Rails 3.1應用程序與Heroku上的這個問題。
那裏有什麼東西,或者你可以想象任何能夠沉默數據庫連接錯誤的東西,同時仍然運行足夠的應用程序來創建路徑和資產路徑?
顯然,如果應用程序需要在啓動過程中讀取/寫入數據,我們不能存根,但我們是否可以自動僞造每個ActiveRecord模型?
真棒!感謝您提醒我。我用Heroku添加了我的票據,如果他們還沒有,他們應該設置這個環境變量。 – jasongarber
對不起,我認爲這個修補程序實際上已經退出了Devise和Rails,Jose Valim做了一些奇特的步法來嘗試解決這個問題,但是我認爲他認爲這不是他們可以做的太多的事情。這個時間點。如果它仍然與Devise HEAD和Rails 3-1穩定的分支一起被破壞,恐怕我認爲除了通過設計模型進行工作以及試圖找出造成問題的具體方法之外,還有什麼可做的。 –
感謝您的更新。 Heroku告訴我他們正在從另一個角度處理這個問題。猜猜我們只需要等待它擺脫。我對自己的情況有一個解決方法。 – jasongarber