2013-08-05 6 views
1

Capifony를 원격 서버에 배포하도록 구성했으며 프로젝트를 배포 할 때 capifony가 롤백 작업을 실행 한 후에 오류가 발생합니다. 그러나 capifony가 symfony:composer:dump_autoload 액션을 실행하고 결과적으로 chache를 덤프하고 이라는 새로운 자동로드 파일을 자동로드합니다. 내가 심포니 응용 프로그램을 실행할 때 후 나는 오류 :Symfony2 + Capifony 롤백 오류

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

그래서 질문 :

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

: 배포가

뭔가이 같은 오류를 가지고 있다면 나는 symfony:composer:dump_autoload을 실행할 수있는 방법 누구든지 나를 도울 수 있습니까?

편집는 :

나는 네임 스페이스 :deploy:update_code를 재 선언하고 나는이 훅이 작품 어떤 오류가 발생하는 경우 현재 배포 세션에서, on_rollback 작업을 변경하려고. 하지만 on_rollback 이벤트 releas_path에서 symfony:composer:dump_autoload 조치를 수행 할 때, 현재 아니며, 나는 ... 여기에 내가 재 선언 네임 스페이스를 tryed 때, 내 코드 자신의 재 선언입니다 수 없습니다

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을 실행하지만, 내가 좋아하지 않아요 ...

다시 선언 네임 스페이스 또는 다른 솔루션으로 진실을 알 수 있습니까? 오류가이 같은 것을 사용하여 발생하는 경우

답변

0

당신이 작업을 계속할 수 있습니다 : 당신의 대답은 @nifr

namespace :symfony do 
    namespace :composer: do 
     task :dump_autoload, :on_error => :continue do 
      /* parent task */ 
     end 
    end 
end 
+0

감사합니다, 나는 대답과 그 문제에 자세히 설명 ... – Webeith