2009-03-28 6 views
0

작년에 레일스에 대해 읽었을 때 가장 인상 깊었던 도구 중 하나가 레이크 (Rake)였습니다. 모든 데브베이스의 동일한 통합 된 권리를 빌드에 담아 두는 데이터베이스 버전 관리 시스템은 삶을 훨씬 더 쉽고 안전하게 만들어 줄 것입니다!레이크 전략, DotNet 구현

그러나 알아낼 수없는 것들 중 하나 : 프로덕션 서버에 실제로 액세스 할 수 없을 때 프로덕션 서버로 이러한 변경을 어떻게 이동합니까? 당사는 전국 어디서나 설치 패키지로 응용 프로그램을 설치/업그레이드하는 서버가 여러 개 있습니다.

참고 :이 질문은 Rails/Rake 특정 기술보다 전략에 관한 것입니다. 우리는 레일을 사용하지 않고 .Net을 사용합니다. 하지만이 게시 시나리오를 파악할 수 있다면 유사한 도구를 사용할 수있는 몇 가지 도구가있는 것 같습니다 (Migratordotnet being one).

답변

1

프로덕션 환경에서 마이그레이션을 실행하는 표준 레일스 방법은 Capistrano입니다. ssh를 사용하여 원격 서버에서 마이그레이션을 실행하는 deploy : migrations 태스크가 있습니다.

당신이 원하는 것을하기 위해 카피스트라 노를 적응시킬 수도 있습니다. 기본적으로 원격 서버 그룹에서 명령을 실행할 수있는 유연한 방법입니다. 을 배포 할 컴퓨터에 Ruby를 설치하려면을 사용해야하지만 으로 배포하려는 컴퓨터에서는 Ruby를 설치하지 않아야합니다.

사용자 지정 Capistrano 작업을 작성하여 setup.exe를 업로드하고 실행 한 다음 Migrator.NET을 사용하여 마이그레이션을 수행하는 것이 가장 좋습니다.

+0

그게 내가 놓친 거지 .... 나는 카피스트라노를 조사 할거야. 감사! – Aaron

1

Red Gate's SQL Compare과 같은 것을 사용하여 데이터베이스 업데이트 프로세스를 자동화 할 수있는 스키마 차이 스크립트를 생성 할 수 있습니다. 나는이 도구를 수동으로 사용하여 변경 작업을 수행했으며 업그레이드 프로세스의 일부로 이러한 업데이트를 실행하는 프로그램을 쉽게 만들 수있었습니다. 만약 내가 그것을 자동화하려고한다면, 나는 스키마의 어떤 버전이 제 자리에 있는지 확인하고 적절한 버전으로 필요한 스크립트를 실행하여 원하는 버전으로 가져올 수있는 무언가를 디자인 할 것이다.

+0

감사합니다. 필자는 비교 도구를 가지고 있으며이를 사용하여 변경 사항을 수동으로 통합합니다. 그러나 레이크 (Rake)는 실제로 위 또는 아래로 움직이는 것에 대한 고통을 덜어주었습니다. 이것이 내 관심사입니다. – Aaron