Rails 2.3.x, bundler, nginx, passenger 및 git를 사용하는 웹 사이트가 있으며 동일한 코드를 사용하여 매우 유사한 사이트를 배포하려고합니다. 둘 사이의 차이점은 다음을 포함한다 :여러 Rails 2.3 웹 사이트에 대해 동일한 코드베이스를 사용하여 차이점을 관리하는 방법
- 로케일
- 데이터베이스 일부의 경우
- 하는 검증 경우
이러한 차이를 관리하는 가장 좋은 방법은 무엇입니까에서
우리가 가진 한 몇 가지 아이디어 :
- 새로운 레일 환경과 같은 생산-A 및 생산-B를 만들고 적절한 환경 파일의 차이를 처리합니다. 한 가지 잠재적 인 문제는 많은 보석과 플러그인이 번 생산품을 찾으려고 하드 코딩되어 있다는 것입니다. 또는 번 개발 환경을 찾으십시오.
여객을 사용하여 전역 변수를 설정하거나 요청 당 도메인을 사용하여 사용할 컨텍스트를 결정하십시오. 이 문제는이 상태에 액세스 할 수없는 레이크 작업, cron 작업 등입니다.
두 버전의 config 디렉토리를 유지 관리하십시오. 이것은 모든 설정 파일의 2 가지 버전을 유지하는 것이 불편할 것이며, 그 중 많은 것은 동일 할 것입니다. 또한, 나는 올바르게이 일을하기 위해 자식을 활용하는 방법을 확신합니다.
모든 아이디어, 팁 또는 예를 들어 주시면 감사하겠습니다. Question #6753275은 관련되어 있지만 불완전한 것으로 보입니다.
감사합니다. 도움이됩니다. rake + rsync를 사용하여 engine/public의 파일을 일반인에게 복사 했습니까? 우리는 Bundler를 사용하고 있습니다 - Gemfile은 어디에 있습니까? 여러 가지 일들이 여러 사이트에서 중복되는 것처럼 보입니다. – acw
글쎄, 플러그인 (레일 2.3.x)로 엔진을 하나의 Gemfile, afaik : 레일 프로젝트에있을 것입니다. 그러나 이것은 단지 추측 일뿐입니다. 나는 번들러가 있기 전에 이것을했다. 보석 (레일 3.x)을 사용하고 있다면, 각 보석은 그들 자신의 보석 파일을 가질 것입니다. 방금 파일을 수동으로 복사했습니다. 약간의 중복이 있지만 문제가되는 부분을 무너 뜨릴 수있는 자유를줍니다. 그리고 가장 중요한 것은 : 당신은 주요 중복을 제거! 코드는 응용 프로그램간에 공유됩니다. – nathanvda