2011-12-12 2 views
0

레일 3.1 앱의 개발 진행 상황을 수정 (예 : 테이블 추가/제거, 현재 테이블의 열 추가/제거/변경)해야합니다. 그렇게하는 가장 좋은 방법은 무엇입니까? 프로덕션 데이터베이스에는 중요한 데이터가 있으며 수정 후에도 유지해야합니다.데이터 손실없이 프로덕션 환경에서 MySQL 데이터베이스를 마이그레이션하는 방법은 무엇입니까?

감사합니다.

+0

앱이 프로덕션 서버에 배포되었습니다. rake db : production : 프로덕션 서버에서 준비합니다. 그러나 이것이 현재의 모든 데이터를 잃어 버릴 지 확실하지 않습니다. – user938363

답변

1

당신이 무엇을 시도했는지 확실하지 않지만 Rails Database Migrations이 무엇을 찾고 있습니다.

+0

앱이 프로덕션 서버에 배포되었습니다. rake db : production : 프로덕션 서버에서 준비합니다. 그러나 이것이 현재의 모든 데이터를 잃어 버릴 지 확실하지 않습니다. – user938363

+0

프로덕션 데이터베이스를 개발 환경 또는 준비 환경에 로컬로 복제하고 마이그레이션을 실행합니다. 모든 검사를 실행하고 검사가 통과하는지 확인하십시오. 결과에 만족하면 프로덕션 데이터베이스를 백업하고 프로덕션 환경에서 마이그레이션을 실행하는 것보다 좋습니다. –

1

나는 당신의 질문을 이해한다면 믿을 수있는 유일한 방법은 데이터와 스키마 복사본을 편리하게 유지하고 dd-mm-yy-timestamp와 같은 표준 명명 규칙을 사용하여 유지하는 것입니다. 이렇게하면 핫 백업/콜드 백업을 수행 할 수 있습니다. 레일에서는 이동 중에도 이동할 수 있습니다. 데이터를 유지하지는 않습니다. 데이터가 시드 데이터이면 반환하고 되돌릴 수 있습니다.

해결책은 다른 손보다 편리합니다. cron 작업을 작성하고 쉘 스크립트를 호출하여 작업이 수동이 아닌지 확인하고 백업 복사본을 안전한 위치에 보관할 수 있습니다.

관련 문제