首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2 +能力回滚误差

Symfony2 +能力回滚误差
EN

Stack Overflow用户
提问于 2013-08-05 17:55:25
回答 1查看 561关注 0票数 1

我将Capifony配置为部署到我的远程服务器,当我部署项目时,在capifony执行回滚操作后会出现一些错误。但是在执行symfony:composer:dump_autoload操作之后,它使用新的发布路径来转储chache和autoload文件,。运行symfony应用程序后,会出现错误:

PHP Warning: include(): Failed opening '/var/www/vhosts/user/app/releases/20130805162052/src/Rocket/ApplicationBundle/RocketApplicationBundle.php' for inclusion (include_path='/........') in /var/www/vhosts/user/app/shared/vendor/composer/ClassLoader.php on line 185

所以问题是:如果部署出现错误,我如何执行symfony:composer:dump_autoload

就像这样:

after "deploy:rolling_back_action", "symfony:composer:dump_autoload"

有谁可以帮我?

编辑

我试图重新声明名称空间:deploy:update_code并更改on_rollback操作,在当前的部署会话中,如果遇到任何错误,这个钩子就可以工作。但是当在symfony:composer:dump_autoload事件中执行on_rollback动作时,releas_path不是当前的,我不能让他重新声明.下面是我的代码,当我尝试重新声明命名空间时:

代码语言:javascript
复制
namespace :deploy do
     task :update_code, :except => { :no_release => true } do
         on_rollback { my_namespace.rollback }
        strategy.deploy!
        finalize_update
     end
 end

 namespace :my_namespace do

  task :rollback, :except => { :no_release => true } do
        run "rm -rf #{release_path}; true" #default capistrano action on rollback

        #my custom actions
        #run "cd "+shared_path+"/../current"
        #run "php composer.phar dump-autoload"

        set :release_path, shared_path+"/../current"
        symfony.composer.dump_autoload
  end
 end

到目前为止,我已经找到了这个问题的临时解决方案-每次部署后执行cap symfony:composer:dump_autoload更新路径和转储新的自动登录信息,但我不喜欢.

我可以通过重新声明名称空间或其他解决方案来达到真相吗?

EN

回答 1

Stack Overflow用户

发布于 2013-08-06 01:59:31

如果出现错误,可以使用以下方法继续执行该任务:

代码语言:javascript
复制
namespace :symfony do 
    namespace :composer: do 
        task :dump_autoload, :on_error => :continue do 
             /* parent task */ 
        end
    end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18064554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档