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

ruby-on-rails – 如何通过capistrano 3运行自定义耙子任务?

发布时间:2020-12-16 19:38:13 所属栏目:百科 来源:网络整理
导读:哪个方式,我可以通过capistrano远程服务器上运行rake命令. 例如我有一个lib / task / reparse.rake与一些方法 desc "it's take csv file,makes some changes and fill db with this info"task :example1 = :environment do require 'csv' rows_to_insert = [
哪个方式,我可以通过capistrano远程服务器上运行rake命令.

例如我有一个lib / task / reparse.rake与一些方法

desc "it's take csv file,makes some changes and fill db with this info"
task :example1 => :environment do
  require 'csv'
  rows_to_insert = []
  # some actions
  # ...
end

在本地服务器上都很好 – 我只是运行rake reparse:example1
它的工作(正确填充db).
所以问题是 – 在实际的托管之后如何运行这个命令?

我使用轨道4.1 capistrano 3.

附:网站上的例子不适合我
How do I run a rake task from Capistrano?

如果我尝试盖生产耙:调用任务= reparse:土地
它失败了:

cap aborted!
Don't know how to build task 'rake:invoke'

一些修复

namespace :somenamespace do
  task :runrake do  
    on roles(:all),in: :sequence,wait: 5 do      
      within release_path do
        execute :rake,ENV['task'],"RAILS_ENV=production"
      end 
    end
  end
end

以这种方式开始执行

cap production somenamespace:runrake task=custom_task_file:custom_method1

解决方法

基于capistrano / rails gem: https://github.com/capistrano/rails/blob/master/lib/capistrano/tasks/migrations.rake
namespace :somenamespace do
  task :runrake do
    on roles(:all) do
      within release_path do
        with rails_env: fetch(:rails_env) do
          execute :rake,ask :task
        end
      end 
    end
  end
end

(编辑:李大同)

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

    推荐文章
      热点阅读