2017-01-04 2 views
0

이미지 레일스 개발에서 마이그레이션을 작성한 후 Heroku로 푸시했습니다.레일스는 Heroku에서 마이그레이션/모델을 파괴합니다.

rails g migration add_smth_to_payments smth:string 
rake db:migrate 
git add -A 
git commit -am "migration smth to payments" 
git push heroku master 

그런 다음 개발에서 시작하여이 마이그레이션을 다시 파괴 한 다음 Heroku로 푸시합니다. 이제

rake db:rollback 
rails d migration add_smth_to_payments 
git add -A 
git commit -am "destroy migration smth to payments" 
git push heroku master 

, 내 질문은, 마이그레이션을 파괴 한 후, Heroku가 결제 테이블에서이 마이그레이션을 제거 않습니다 (물론 모델이 될 수 있음)? 파괴 장소 개발이 걸리기 때문에 나는

당신에게

답변

1

마이그레이션이 실행되면, 마이그레이션 파일 자체는 무관 감사 요구하고있다. 삭제하거나, 편집하거나, 이름을 바꿀 수 있습니다 (타임 스탬프 접두사 만 남겨둔다면). 그러면 데이터베이스에 아무 것도 일어나지 않습니다. 실제로 많은 사람들이 이전 마이 그 레이션을 주기적으로 삭제하여 관련성이없는 잡음이있는 db/migrate이 어수선하게 흩어지는 것을 방지합니다.

마이 그 레이션을 취소해야하는 경우 (즉, '지급 내역에서이 마이 그 레이션 제거') 마이 그 레이션을 취소하거나 마이 그 레이션을 롤백하려면 새 마이 그 레이션을 작성하십시오. 롤백은 항상 옵션은 아니지만 일부 마이그레이션은 되돌릴 수 없으며 롤백하면 되돌릴 필요가없는 마이그레이션을 되돌릴 수 있습니다.

모든 내용은 생산/Heroku, 개발 및 기타 db:migrate에 적용됩니다.

+2

'heroku run rake db : rollback'을 실행하여 되돌릴 수있는 마이그레이션을 롤백 할 수 있습니다 (* 마이그레이션을 삭제하고 Heroku로 푸시). 이미'rails d migration'을 실행하여 결과를 Heroku에 푸시했다면 잘못된 마이그레이션을 롤백 할 것입니다. – meagar

관련 문제