2011-09-23 5 views
3

을 내가 생산 DB를 가지고, 나는 기존 설치를 업데이트 할 수 있도록 내 제품을 배달 할 때 나는 또한, 마이그레이션을 포함dB로 방법 : 스키마 : DB 후 마이그레이션 부하

rake db:create db:schema:load db:seed 

으로 준비하는 것이.

스키마 : 최신 마이그레이션의 버전 만 schema_migrations에로드되므로 db : migrate를 실행하면 마이그레이션 프로그램이 아직 schema_migrations에없는 다른 모든 마이그레이션을 실행하려고 시도합니다.

이 문제를 해결할 수있는 좋은 방법이 있습니까? 마이그레이션이 필요하지 않습니다. (불행히도 db : migrate와 같이 준비 단계로 마이그레이션해야합니까?)

답변

2

그냥 DB를하지 않는 : 스키마 : 부하를 대신 마이그레이션을 통과 : 큰/긴 프로젝트 마이그레이션을 통과하는 것은 어려운 방법 있음을 유의하시기 바랍니다

rake db:create db:migrate db:seed 

. 당신은 당신의 seeds.rb를 최신 상태로 유지하고 당신을 이용하도록해야합니다. 이전 마이그레이션은 프로젝트가 발전함에 따라 호환되지 않는 모델 변경 (이전 마이그레이션과 관련하여) 때문에 실패하는 경향이 있습니다.

+0

네가 맞아, 이전 마이그레이션을 유지하는 것이 어렵다. 이 프로젝트의 나이와 크기로 인해 불행하게도 다시 작업하게하는 데 필요한 시간을 보내지는 못합니다. 그렇기 때문에 제가 언급 한 마지막 문장에서 db : migrate는 선택 사항이 아닙니다. – CMW

+0

죄송합니다. 실제로, 내 프로젝트에서 db : reset은 이전 마이그레이션을 다시 통과시키지 않습니다. 글쎄, 옛날 마이그레이션을 모두 지우고 아무런 문제가 없었던 레일 2. * 이후로 진화 한 아주 오래된 프로젝트를 한 번했습니다. 힘내라 경우에 대비해 추적 할 것입니다;) – sergeych

관련 문제