在卡皮斯特拉诺食谱中放置"之前"和"之后"的位置?

Mel*_*emi 6 capistrano ruby-on-rails ruby-on-rails-3

愚蠢的问题,但我们有一个破碎的卡皮斯特拉诺食谱,我想验证我们没有使用after&before错误?

任务之前和之后是否属于:deploy命名空间块中或其外部?我在这里看到两个例子.

这是有问题的deploy.rb的摘录:

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end

  # copy database.yml into project
  task :copy_database_config do
    production_db_config = "/Library/RoRconfig/#{application}.yml"
    run "cp #{production_db_config} #{current_release}/config/database.yml"
    `puts "replaced database.yml with live copy"` 
  end

  task :pipeline_precompile do
    run "cd #{release_path}; RAILS_ENV=production rake assets:precompile"
  end

  after "deploy:update_code", "deploy:pipeline_precompile"         ### <---
  before "deploy:finalize_update", "deploy:copy_database_config"   ### <---
end
Run Code Online (Sandbox Code Playgroud)

Eze*_*lin 5

我使用类似于以下内容的设置:

after :deploy, "deploy:update_code", "deploy:pipeline_precompile"
before :deploy, "deploy:finalize_update", "deploy:copy_database_config"

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end

  # copy database.yml into project
  task :copy_database_config do
    production_db_config = "/Library/RoRconfig/#{application}.yml"
    run "cp #{production_db_config} #{current_release}/config/database.yml"
    `puts "replaced database.yml with live copy"` 
  end

  task :pipeline_precompile do
    run "cd #{release_path}; RAILS_ENV=production rake assets:precompile"
  end
end
Run Code Online (Sandbox Code Playgroud)