是否可以将rails app的迁移添加到ruby gem?

时间:2015-01-27 10:40:42

标签: ruby-on-rails ruby rubygems

对于我的rails项目,我想写一个ruby gem,它有一个ActiveRecord模型,例如。 Animal < ActiveRecord::Base。是否可以将迁移cretae_animals添加到gem中,以便在我的应用程序中安装gem时运行rake db:migrate迁移将执行?

1 个答案:

答案 0 :(得分:1)

您可以通过将您的gem包含在迁移中,以及包含运行它们的rake任务来完成此操作。然后按如下方式调用rake任务:

myGem = Gem::Specification.find_by_name 'gem-name'
load "#{myGem.gem_dir}/lib/tasks/my_migration.rake"

(正确归功于安迪·阿特金森,我originally learned this参与类似的项目。)