使用Capistrano 3进行部署时的串行输出以进行迁移

时间:2016-01-26 12:23:54

标签: logging deployment migration capistrano dbmigrate

当我使用自定义db:来自capistrano / rails的迁移任务时,未显示有关迁移处理的信息。要更改我自定义的db:migrate任务并将log_level更改为:debug。

  info '[deploy:migrate] Run `rake db:migrate`'
    within release_path do
      with rails_env: fetch(:rails_env) do
        has_verbosity = defined?(SSHKit) && SSHKit.respond_to?(:config) && SSHKit.config.respond_to?(:output_verbosity)
        if has_verbosity
          verbosity_level = SSHKit.config.output_verbosity
          SSHKit.config.output_verbosity = 0 # Logger::DEBUG
        end

        execute :rake, "db:migrate"

        SSHKit.config.output_verbosity = verbosity_level if has_verbosity
      end
    end

一切似乎都没问题,但有关处理迁移的信息显示在完成所有迁移之后。但我希望通过步骤显示该信息(1.迁移1完成; 2.关于添加到日志的信息; 3.迁移2完成; 4.关于添加到日志的信息。)。现在它的工作方式如下:1。迁移1完成; 2.迁移2完成; 4.有关添加到日志的所有迁移的信息。

1 个答案:

答案 0 :(得分:0)

感谢您的帮助。我已使用Rake::Task['deploy:migrate'].clear禁用了默认迁移任务,但这对我无效。我研究了gem sshkit-1.8.1,发现只需要将set :pty, true添加到deploy.rb。