3

在我的项目中,我使用了when + capistrano,所以这是我的Capfile

require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'whenever/capistrano'

Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }

这是我的deployr.rb文件:

set :application, 'privet-mccafe'
set :repo_url, 'git@codebasehq.com:digitalizm/mccafe-vk-privet-app/application.git'
set :scm, :git
set :branch, 'master'
set :keep_releases, 5
set :ssh_options, { forward_agent: true }

set :bundle_roles, :all

set :linked_files, %w{config/database.yml config/initializers/secret_token.rb}
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}

namespace :deploy do
  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      execute :mkdir, "-p #{release_path.join('tmp')}"
      execute :touch, release_path.join('tmp/restart.txt')
    end
  end
end

这是我的schedule.rb文件:

every 4.hours do
  rake "notifications:deliver"
end

无论如何,随着执行cap staging deploy,我得到错误:

cap aborted!
undefined method `instance' for Capistrano::Configuration:Class
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/gems/whenever-0.8.4/lib/whenever/capistrano/recipes.rb:3:in `<top (required)>'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/gems/whenever-0.8.4/lib/whenever/capistrano.rb:1:in `require'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/gems/whenever-0.8.4/lib/whenever/capistrano.rb:1:in `<top (required)>'
/Users/xamenrax/code/application/Capfile:7:in `require'
/Users/xamenrax/code/application/Capfile:7:in `<top (required)>'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-3.0.1/lib/capistrano/application.rb:22:in `load_rakefile'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-3.0.1/lib/capistrano/application.rb:12:in `run'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-3.0.1/bin/cap:3:in `<top (required)>'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/bin/cap:23:in `load'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/bin/cap:23:in `<main>'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/Users/xamenrax/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)
4

1 回答 1

11

每当 ~> 0.9.0 解决这个问题

只要 < 0.9 与 capistrano v3 不兼容

于 2013-12-26T10:45:15.027 回答