加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 用于安装仅执行一次的gem迁移的Rake任务

发布时间:2020-12-17 02:37:06 所属栏目:百科 来源:网络整理
导读:为什么这个rake任务 gems = %w(gem1 gem2 gem3)namespace :gems do namespace :install do desc "Runs install:migrations for all gems" task :migrations do gems.each do |gem_name| print "nInstalling migrations for the #{gem_name} gem...n" Rake:
为什么这个rake任务

gems = %w(gem1 gem2 gem3)
namespace :gems do
  namespace :install do
    desc "Runs install:migrations for all gems"
    task :migrations do
      gems.each do |gem_name|
        print "nInstalling migrations for the #{gem_name} gem...n"
        Rake::Task["#{gem_name}:install:migrations"].invoke
      end
      print "nnGem migrations installed."
    end
  end
end

实际上只运行第一组迁移,无论我使用的gems / gem order / random调用reenable?

Installing migrations for the gem1 gem...
Copied migration whatever from gem1
Copied migration whatever from gem1
Copied migration whatever from gem1
Copied migration whatever from gem1

Installing migrations for the gem2 gem...
(nothing)

Installing migrations for the gem3 gem...
(nothing)

Gem migrations installed.

解决方法

调用方法仅“按需”运行,这基本上意味着一旦运行一次,除非重新启用,否则它不会再次运行.

您可以在每个.invoke之后调用.reenable来重置它,或使用.execute命令来运行任务.

使用.execute的警告是,如果你拥有它们,它将不会运行任务的依赖项.

Why is Rake not able to invoke multiple tasks consecutively?

How to run Rake tasks from within Rake tasks?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读