문제

작년에 레일에 대해 읽고 놀고있을 때, 가장 큰 인상을 준 도구 중 하나는 레이크였습니다. 모든 Dev DB의 동일한 통합을 빌드에 올바르게 유지하는 데이터베이스 버전 관리 시스템.

그러나 내가 알아낼 수 없었던 것들 중 하나 : 실제로 생산 서버에 액세스 할 수 없을 때 이러한 변경 사항을 생산 서버로 어떻게 이동합니까? 우리는 애플리케이션이 설정 패키지로 설치/업그레이드되는 곳에 전국에 여러 서버가 있습니다.

참고 :이 질문은 Rails/Rake 특정 기술보다 전략에 관한 것입니다. 우리는 레일을 사용하지 않고 .NET을 사용합니다. 그러나이 게시 시나리오를 알아낼 수 있다면 몇 가지 도구가있는 것 같습니다. Migratordotnet은 하나입니다 그것은 우리가 비슷한 일을 할 수있게 해줄 수 있습니다.

도움이 되었습니까?

해결책

아시다시피, 생산에서 마이그레이션을 실행하는 표준 레일 방법은 다음과 같습니다. Capistrano. SSH를 사용하여 원격 서버에서 마이그레이션을 실행하는 배포 : 마이그레이션 작업이 있습니다.

Capistrano가 원하는 작업을 수행 할 수 있습니다. 본질적으로 원격 서버 그룹에서 명령을 실행하는 유연한 방법입니다. 배포중인 머신에 루비를 설치해야합니다. ~에서 사용하지만 기계에서 사용하지 않으려면 배포 중입니다. 에게.

가장 좋은 옵션은 사용자 정의 Capistrano 작업을 작성하여 Setup.exe를 업로드 한 다음 실행 한 다음 마이그레이션을 실행하는 것입니다 (아마도 migrator.net을 사용).

다른 팁

당신은 같은 것을 사용할 수 있습니다 Red Gate의 SQL 비교 데이터베이스 업데이트 프로세스를 자동화 할 수있는 스키마 Diff 스크립트를 생성합니다. 이 도구를 수동으로 사용하여 이러한 변경 사항을 수행했으며 업그레이드 프로세스의 일부로 이러한 업데이트를 실행하는 프로그램을 쉽게 만들 수 있습니다. 그래도 자동화하려는 경우, 나는 어떤 스키마의 스키마 버전을 확인하고 필요한 스크립트를 적절한 순서로 실행하여 원하는 버전을 가져 오기 위해 필요한 스크립트를 실행할 수있는 무언가로 설계 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top