3

我开始使用 vlad 进行新部署,并且想知道设置它的最佳方法是什么,以便我可以将相同的任务用于本地开发和远程生产服务器?

我考虑过将所有内容定义为远程任务,然后使用设置域变量的 dev/prod 方法,然后我可以调用rake dev/prod vlad:do_something,但这感觉完全错误。

我的许多任务对于在我的本地服务器和生产服务器上运行都很有用,我想避免重复自己,为本地设置一个“任务”,为远程设置一个“remote_task”。例如

def do_something
  run "echo something"
end

task :do_something_dev
  do_something
end

remote_task do_something_prod
  do_something
end

我是否遗漏了什么,或者这些真的是在本地和远程机器上使用相同 rake 任务的唯一选择吗?

4

1 回答 1

5

这个怎么样:

[:development, :test, :production].each do |environment|
  namespace environment do
    task :do_something do
      echo "do something on #{environment}"
    end
  end
end

这会给你:

  • rake vlad:development:do_something
  • rake vlad:test:do_something
  • rake vlad:production:do_something

仅使用一种方法,按照自己的方式进行操作可能就不那么冗长了。但是只要你有 2 或 3 种方法,开销就可以忽略不计。

于 2010-07-20T10:04:31.270 回答