我在我的应用程序中使用rails 3.1.3。对于后台工作延迟工作2.1.4正在使用。 现在我正在尝试将延迟的作业更新为3.x。
安装delayed_job 3.x和delayed_job_active_record gem。
捆绑安装后尝试运行rails 生成delayed_job:active_record 和 rails生成delayed_job:upgrade 。但两个生成器命令都抛出错误。先投掷
无法加载生成器“generators / delayed_job / active_record_generator”。错误:DelayedJob不是模块
后来投掷
无法加载生成器“generators / delayed_job / upgrade_generator”。错误:DelayedJob不是模块
任何人都可以告诉解决方案以及我做错了什么。
谢谢你的问候
答案 0 :(得分:0)
问题是,从delayed_jobs旧版本升级到新版本时,延迟作业表已经存在。所以可能是delayed_bob生成器不会存在。表结构的主要区别是名为 queue 的附加列。所以我们需要将此列添加到delayed_jobs表中。生成器命令也执行相同的工作。它会生成迁移以更改表并添加列。我通过阅读来源找到了它。因此我们可以手动编写迁移来更改表。
rails g migration migration name
然后将以下代码添加到迁移并运行迁移。
def up
add_column :delayed_jobs, :queue, :string
end
def down
remove_column :delayed_jobs, :queue
end
现在,您可以使用多个延迟作业并根据队列分配作业。