即将发布的 Capistrano 2.0 版本持续发展!远程管理单个服务器和服务器集群从未如此简单。有了 Capistrano,您可以
好吧,也许最后一条不行,除非她是一位非常特别的女士。但其余的肯定适用。
Capistrano 2.0 预览版 2 现已发布(版本 1.99.1)。您只能从 Rails beta gem 服务器获取它
请注意,Capistrano 2.0 与 Capistrano 1.x 配方不完全向后兼容。有关升级的更多信息,请查看 http://www.capify.org/upgrade。
要安装预览版,您还需要确保已安装以下 gem,Capistrano 依赖于它们(可在主 Rubygems 存储库中找到)
下载它,安装它,试用它。尽情体验。报告您发现的问题。我们离正式发布不远了!
好了。现在所有这些都说完了,让我们来谈谈 PR2 的新内容。首先,是错误修复
接下来是新功能
功能:“deploy:cold”任务将在启动应用程序之前运行迁移。如果您是第一次部署应用程序,很可能数据库也需要设置!
功能:扩展任务的旧方法(例如,命名为“before_deploy”和“after_deploy”以扩展“deploy”任务的任务)现在不被推荐使用(尽管尚未正式弃用)。新方法使用了一些新的关键字
更广泛地说,您可以使用“on”关键字将自己的任务附加到任意“事件”上
在调用任何事件之前会触发 :before 事件,并在事件成功完成后立即调用 :after 事件。Capistrano 目前支持另外四个事件
您甚至可以定义自己的事件,然后使用“trigger”方法来触发它们。
功能:“deploy:app”命名空间已被移除。它包含的任务现在直接位于“deploy”命名空间中。因此,“deploy:app:start”和“deploy:app:stop”现在分别是“deploy:start”和“deploy:stop”。
功能:如果您的“scm_command”被设置为自定义值,因为您的 SCM 位于远程主机上的非标准位置,并且您的 SCM 命令不在本地主机上的相同位置,您以前会遇到问题。现在,如果您需要为 scm_command 指定不同的设置,具体取决于它是本地调用还是远程调用,您可以选择分别指定其中一个
请注意,如果设置了“scm_command”,“local_scm_command”将默认为该值,但如果设置了“local_scm_command”,“scm_command”不受影响。
功能:Capistrano 现在根据服务器的完整连接信息(包括主机名、用户名和端口)唯一标识服务器。(以前,服务器仅基于主机名唯一。)这使得 Capistrano 可以在 NAT 环境中使用,其中所有服务器使用相同的主机名,但端口号不同。
功能:“capify”命令现在支持“-h”开关,这应该使其行为更符合人们的预期。