2012-11-06 57 views
0

我爲我的應用程序使用rails 3.1.3。對於後臺作業延遲作業2.1.4正在使用。 現在我試圖將延遲的作業更新爲3.x.延遲作業錯誤 - DlayedJob不是模塊?

安裝了delayed_job 3.x和delayed_job_active_record gem。

捆綁安裝想跑產生的delayed_job軌後:active_record軌產生的delayed_job:升級。但是這兩個發電機命令都會引發錯誤。首先投擲

無法載入生成器「生成器/ delayed_job/active_record_generator」。錯誤:DelayedJob是不是一個模塊

過了一會兒扔

無法加載生成器 「生成/ delayed_job的/ upgrade_generator」。錯誤:DelayedJob不是一個模塊

任何人都可以告訴解決方案和我做錯了什麼。

謝謝你的問候

回答

0

的問題是,雖然從delayed_jobs舊版本到新版本的延遲的工作表將已經存在升級。所以可能是delayed_bob生成器不會在那裏。表結構的主要區別是名爲隊列的附加列。所以我們需要將此列添加到delayed_jobs表中。發電機命令也做同樣的工作。它生成用於修改表格的遷移並添加列。我通過閱讀來源找到它。所以我們可以手動編寫一個遷移來改變表格。

rails g migration migration name 

然後將下面的代碼添加到遷移並運行遷移。

def up 
     add_column :delayed_jobs, :queue, :string 
    end 
    def down 
     remove_column :delayed_jobs, :queue 
    end 

現在您可以使用多個延遲作業並根據隊列分配作業。