2011-07-04 8 views
3

난 레일 응용 프로그램의 배포를 위해 카피 스트라 노를 사용하고 있습니다; 새 릴리스를 만들지 않고 서버에서 한 파일을 어떻게 업데이트 할 수 있습니까? 예를 들어서버에 단일 파일 자식 배포

:

나는 단지 내 UserController.rb.에 변경을하고 서버를 이눔하기 위해 최선을 다하고 가정, 는 어떻게 새로운 배포하지 않고 서버에이 업데이트를 받아야합니다.

+1

배포 시스템을 사용하는 데 필요한 요점은 실제로 그것을 사용하지 않고 사용하는 것입니다. –

+0

@Andrew : 의견을 보내 주셔서 감사합니다.하지만 여전히 명확하지 않습니다. 간단히 말해서 하나의 파일 업데이트에 대한 전체 배포 프로세스를 수행해야합니다. – Neel

답변

2

카피스트라노를 통해 새 릴리스를 만들어야합니다.

배포 도구의 목적은 반복 가능한 결과를 제공하고 배포 한 내용을 추적하는 데 도움을주기위한 것입니다. 작은 수정을 위해이 과정을 포기하면 이러한 이점을 모두 잃을 수 있습니다. 간단한 변경을 위해 전체 배포 프로세스를 실행하는 것이 과도하다고 생각한다면 프로세스를 능률화하기 위해 작업해야합니다 (또는 간단한 수정 작업을 수행하지 않아도된다는 것을 확인하십시오.).

실제로 많은 사람들이 서버에서 수동으로 파일을 편집 할 것이라고 확신합니다. 위에 제시된 이유 때문에 권장되지 않습니다. 트레이드 오프가 그만한 가치가 있다고 생각한다면 그것은 당신의 부름입니다.

면책 조항 : 저는 루비 개발자가 아니며 Capistrano를 실제로 사용한 적이 없습니다. 제 조언은 그 기술에만 국한되지 않고 일반적입니다. 어쩌면 시스템을 통해 작은 변화를 푸는 특별한 방법이있을 것입니다. 만약 그렇다면, 나는 그것을 지적한 대답을 기대했을 것입니다 ...

+0

음 배포가 유용하다는 것을 잘 알고 있습니다.하지만 여전히 FTP 클라이언트를 사용하지 않고 파일 만 변경할 수 있다는 것을 알고 싶습니다. 어떤 생각이 있어도 도와주세요 ... By 안녕하세요, 답장을 보내 주셔서 감사합니다. – Neel

+0

s/th를 테스트 또는 스테이징 서버로 밀어 넣으려는 경우 롤백 또는 릴리스 추적에 신경을 쓰지 않아도됩니다. 즉, 미션 크리티컬 서버를 만지지 않고 오타를 기다리지 않고 오타 또는 기타 실수를 빨리 해결할 수 있습니다. 앱에 따라 꽤 걸릴 수 있습니다. 그러나 일반적으로 프로덕션 박스에서는 전혀 사용하지 않으면 매우 현명하고 거의 사용하지 않아야한다는 데 동의합니다. –

11

카피스트라노는 전체 배포가 ' 필요하지 않습니다. 귀하의 경우에는

cap -e deploy:upload 

아마 이렇게 될 것이다 :

cap deploy:upload FILES='app/controllers/UserController.rb' 

당신은 또한 당신의 응용 프로그램을 다시 시작해야 할 수 있습니다

cap deploy:restart 
+0

여기와 같습니다 : http://www.frick-web.com/en/blogposts/capistrano-single-file-deployment- 완벽하게 작동합니다! – Mattherick

관련 문제