有了Capistrano,如何回滚到特定版本?

时间:2010-12-05 16:17:08

标签: capistrano

使用Capistrano,如何回滚到特定版本?

我的服务器文件夹有/ release文件夹,如何回滚到特定文件夹?

我可以在本地获取计算机上的版本列表吗?

我使用的是GIT,但这并没有起作用:

cap deploy -s revision:HASH

3 个答案:

答案 0 :(得分:42)

<强>更新 答案是在capistrano版本2的时代写的。使用当前的capistrano版本3,您可以通过使用

实现相同的目标
cap production deploy:rollback ROLLBACK_RELEASE=2010123

有关详细信息,请参阅Capistrano documentation

感谢@codenoob指出这一点!


旧版

以下内容应该有效:

cap deploy:rollback -s previous_release=/path/to/release/on/server


示例:

假设您已将应用程序部署到/srv/some_app,并且您拥有以下版本/目录结构:

|- srv
   |- some_app
      |- shared
      |- current -> /srv/some_app/releases/2012123
      |- releases
         |- 2010123
         |- 2011123
         |- 2012123

如果您现在想要从当前( 2012123 )版本返回 2010123 版本,那么您将使用

cap deploy:rollback -s previous_release=/srv/some_app/releases/2010123

答案 1 :(得分:4)

另一种选择是

add_action( 'admin_menu', array(&$this, 'addWidgetSettingsMenu' ));

来自http://capistranorb.com/documentation/getting-started/rollbacks/#

答案 2 :(得分:0)

Capistrano按日期/时间命名发布目录。

从capistrano shell,您可以连接到您部署到的所有计算机,并从那里检查它们:

$ cap shell
# Show them - it might be a long list
cap> ls  /mnt/html/deployed/releases/
 ** [out :: hostname.example.com] 20110521130031
# how many releases on each machine?
cap> ls  /mnt/html/deployed/releases/ |wc -l