使用Capistrano,如何回滚到特定版本?
我的服务器文件夹有/ release文件夹,如何回滚到特定文件夹?
我可以在本地获取计算机上的版本列表吗?
我使用的是GIT,但这并没有起作用:
cap deploy -s revision:HASH
答案 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