Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从Capistrano运行rake任务(如果存在)_Ruby On Rails_Ruby_Rake_Capistrano_Capistrano3 - Fatal编程技术网

Ruby on rails 从Capistrano运行rake任务(如果存在)

Ruby on rails 从Capistrano运行rake任务(如果存在),ruby-on-rails,ruby,rake,capistrano,capistrano3,Ruby On Rails,Ruby,Rake,Capistrano,Capistrano3,我需要创建一个Capistrano预部署步骤来运行定制的rake任务 在部署.rb中: 在“部署:启动”、“数据库:回滚”之前 名称空间:db do 描述“仅当已部署的PR需要回滚时才回滚暂存数据库” 任务:回滚 关于角色(:master)do 在当前路径中。要做什么 使用rails_env:“staging”do 执行:rake,“释放:回滚” 结束 结束 结束 结束 结束 问题是,在部署此代码时,服务器上还没有rake任务,因此部署失败,原因是: rake stdout: rake abo

我需要创建一个Capistrano预部署步骤来运行定制的rake任务

在部署.rb中:

在“部署:启动”、“数据库:回滚”之前
名称空间:db do
描述“仅当已部署的PR需要回滚时才回滚暂存数据库”
任务:回滚
关于角色(:master)do
在当前路径中。要做什么
使用rails_env:“staging”do
执行:rake,“释放:回滚”
结束
结束
结束
结束
结束
问题是,在部署此代码时,服务器上还没有rake任务,因此部署失败,原因是:

rake stdout: rake aborted!

Don't know how to build task 'release:rollback_staging' (See the list of available tasks with `rake --tasks`)
是否有办法检查Capistrano是否存在rake任务? smth类似:

使用rails\u env:'staging'do
如果rake\u存在,执行:rake,'release:rollback\u staging'发布:回滚\u暂存'
结束

最后,我使用
raise\u on\u non\u zero\u exit:false忽略了rake任务中的非0退出代码:

使用rails\u env:'staging'do
执行:rake,'release:rollback\u staging',在\u非\u零上提升\u\u退出:false
结束

最后,我使用
raise\u on\u non\u zero\u exit:false忽略了rake任务中的非0退出代码:

使用rails\u env:'staging'do
执行:rake,'release:rollback\u staging',在\u非\u零上提升\u\u退出:false
结束

这样行吗?我在这张照片上看到了这个图案


这样行吗?我在这张照片上看到了这个图案


欢迎来到SO!请阅读这篇文章,如果这是另一个问题,请把它贴出来。如果是答案,请编辑。欢迎使用SO!请阅读这篇文章,如果这是另一个问题,请把它贴出来。如果是答案,请编辑它。
if Rake::Task.task_defined?('release:rollback_staging')