为特定环境调用 rake 任务
Invoking rake task for specific environment
您好,我正在为我的迷你项目编写部署脚本(rake 任务)。当我调用数据库种子时,我有这部分:
Rake::Task['db:seed'].invoke
还有编译资产:
Rake::Task['assets:precompile'].invoke
所以我想知道是否有一种方法可以在生产环境中调用这些任务,就像您从这样的控制台中执行的那样:
RAILS_ENV=production rake db:seed
在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
您好,我正在为我的迷你项目编写部署脚本(rake 任务)。当我调用数据库种子时,我有这部分:
Rake::Task['db:seed'].invoke
还有编译资产:
Rake::Task['assets:precompile'].invoke
所以我想知道是否有一种方法可以在生产环境中调用这些任务,就像您从这样的控制台中执行的那样:
RAILS_ENV=production rake db:seed
在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