2012-08-04 2 views
0

몇 달 전에 heroku cedar stack에서 생산 데이터베이스를 실수로 삭제했습니다. heroku run rake db:migrate을 통해 데이터베이스를 다시 만들려고했지만 마이 그 레이션에 문제가있어 실패했습니다. 나는 그 다음 도청 장치를 설치했고, heroku db:push를했다. 그리고 누구나는 세계와 함께 올바르게 있었다.heroku run rake db : tap 및 heroku db를 사용한 후 마이그레이션 할 수 있습니까?

로컬 마이그레이션을 실행 한 후 프로덕션 데이터베이스를 업데이트 한 후 heroku run rake db:migrate을 사용할 수 있습니까? 아니면 도청에 영원히 부합합니까? heroku db:push?

아마도이 질문을하는 더 좋은 방법은 heroku run rake db:migrate 일 것입니다. 모든 마이그레이션을 수행 할 것인가? (또는 실패 할 가능성이 있습니까?) 아니면 마지막으로 heroku db:push 이후 발생한 마이그레이션 만 통과할까요?

답변

0

데이터베이스에서 schema_migrations 테이블을보십시오. 레일스가 어떤 마이 그 레이션을 실행할 지 결정하는 데 사용됩니다. Rails가 애플리케이션에 적용한 각 마이그레이션 버전이 포함 된 단일 열이 있습니다.

  • 20110415064108_create_users.rb

20110415064108가 내 schema_migrations 테이블의 행으로 표시됩니다 예를 들어, 나는 db/migrate에 다음과 같은 파일이 있습니다. 마지막으로 rake db:migrate을 실행 한 이후로 존재하는 db/migrate에있는 모든 다른 마이그레이션 파일에도 동일하게 적용됩니다. (나는 대해 아무것도 모르는) 탭 가정

는 새로운 마이그레이션을 작성하고 문제 (만 새로 만든 마이그레이션없이 생산에 rake db:migrate으로 실행할 수 있어야, 생산 전체를이 schema_migraions 테이블을 밀어 것입니다 버전 번호가 제품 번호 schema_migrations 테이블에서 누락 된 유일한 번호이므로이 적용됩니다.

+0

schema_migrations 테이블에 대한 정보 주셔서 감사합니다. 나는 지금 막 이주를 달리고, 그것을 생산으로 밀고, heroku는 rake db를 달린다 : 이주는 일했다. 감사. – tbone

관련 문제