为特定环境调用rake任务

时间:2015-02-20 16:01:52

标签: ruby-on-rails ruby deployment rake

您好我正在为我的迷你项目编写部署脚本(rake任务)。当我调用db种子时,我有这个部分:

Rake::Task['db:seed'].invoke

还要编译资产:

Rake::Task['assets:precompile'].invoke

所以我想知道有没有办法在生产环境中调用这些任务,就像你从这样的控制台那样:

RAILS_ENV=production rake db:seed

1 个答案:

答案 0 :(得分:0)

在Rails中,您可以这样做:

[arup@app (master)]$ rails g task my_namespace my_task1
      create  lib/tasks/my_namespace.rake
[arup@app (master)]$ cat lib/tasks/my_namespace.rake
namespace :my_namespace do
  desc "TODO"
  task my_task1: :environment do
  end
end
[arup@app (master)]$

现在看到Rakefile已经为你准备好了。

只需打开刚刚创建的Rakefile,然后定义您的任务。

namespace :my_namespace do
  task my_task1: :environment do
    Rake::Task['db:seed'].invoke
    Rake::Task['assets:precompile'].invoke
  end
end

提示为2.10 Custom Rake Tasks