2013-06-17 2 views
19

레일 2.3.8에서 응용 프로그램을 실행 중입니다. Rails 4.0 (RC에 있음)으로 업그레이드 할 계획입니다. 이 작업을 수행하는 가장 쉬운 방법은 무엇입니까? 먼저 Rails 3.x로 업그레이드해야합니까?레일 2.3.8에서 4.0으로 업그레이드

참고 : 현재 구현중인 starling 및 ferret을 사용하고 있습니다. 업그레이드의 일부로 sidekiqsunspot

+3

"내가 처음으로 Rails 3.x로 업그레이드해야합니까?"- 허용 할 수있는 고통에 대한 임계 값에 따라 다릅니다.). 일반적으로 대규모 변경을 작은 증분 변경으로 나누는 것이 좋습니다. – PinnyM

+3

또한 3.x 또는 4로 이동하기 전에 최신 2.3.x로 업그레이드하려고 시도해야합니다. – PinnyM

+0

루비를 업그레이드해야 할 수도 있습니다. –

답변

45

으로 이동할 것을 고려 중입니다. 이는 응용 프로그램의 크기에 따라 시간이 오래 걸릴 수 있습니다. 각 단계에서 버그와 문제, 손상된 보석에 대한 응용 프로그램을 테스트하고 싶을 것입니다 (가장 확실하게 다루기 때문에). 가장 복잡한 단계에 대한 링크가 포함되어 있습니다. 다음은 최소한의 통증 경로입니다.

Rails 2.3.18로 업데이트.

Update to Ruby 1.9.3.

Update to Rails 3.0.

Update to Rails 3.1.

,174,

Update to Rails 3.2.latest.

Ruby 2.0.latest로 업데이트.

Update to Rails 4.0.

Update from Rails 4.0 to Rails 4.1.

Update from Rails 4.1 to Rails 4.2.

Update from Rails 4.2 to Rails 5.0.

Update from Rails 5.0 to Rails 5.1.

보너스 : 대규모 응용 프로그램을 사용하는 경우 시간이 오래 걸립니다. 대규모 팀이있는 경우 병합 충돌이 반복되어 장기 실행 분기가 커지게됩니다. 이 문제를 완화하기위한 한 가지 전략은 dual boot your application with both versions of Rails입니다. 따라서 새 버전을 장기 실행 분기 대신 마스터 분기에서 실행할 수 있습니다.

+1

이것이 도움이된다면 답을 수락하십시오. :) –

+1

안녕하세요. Rails 3.0으로 업그레이드하기 전에 Ruby 1.9.3으로 업그레이드해야하는 이유는 무엇입니까? Rails 2.3은 Ruby 1.9를 지원하지 않지만 Rails 3는 Ruby 1.9에서 Rails 2.3을 사용할 수 있도록 추가 작업을 생성합니까? – robd

+2

좋은 지적. Ruby 1.9로 옮기기 전에 Rails 3로 업그레이드 할 수 있습니다. 우리의 경우에는 큰 응용 프로그램이 있었고 Ruby 1.8.7에서 1.9로 이동하는 것이 Rails 2.3에서 3.0으로 이동하는 것보다 훨씬 어려웠습니다. 1.9를 얻는 데는 몇 달이 걸렸지 만 3.0에 도달하는 데 1 년 이상 걸렸습니다. 그래서 우리는 더 쉬운 업데이트로 먼저 Ruby 1.9의 성능 이점과 보석 호환성을 제공했습니다. –

2

Aaron Gray의 답변은 매우 유용하지만, 업그레이드 후 코드의 레일 버전 차이점을 찾기가 어려운 경우가 있습니다. 제 말은 무언가를 업그레이드 한 후에 여러 번 작동하지 않는다는 것입니다. 어쩌면 파일의 일부 변경 사항이 있거나 최신 버전에서 일부 파일을 추가하거나 제거 할 수 있습니다. 버전 간의 모든 차이점을 찾아 비교할 수있는 좋은 도구가 있습니다. Rails differences에 있으며 잠재적 인 실수와 버그를 발견하는 데 매우 도움이 될 수 있습니다.