IT박스

rake db : test : prepare는 실제로 무엇을합니까?

itboxs 2020. 7. 14. 20:58
반응형

rake db : test : prepare는 실제로 무엇을합니까?


나는 rails tutorial 비디오를 따르고 있으며 db:test:prepare명령이 실제로 무엇을하는지 알 수 없습니다 . 누군가 설명 할 수 있습니까?


위의 레이크 db : migrate는 개발 환경에서 보류중인 마이그레이션을 실행하고 db / schema.rb를 업데이트합니다. rake db : test : load는 현재 db / schema.rb에서 테스트 데이터베이스를 다시 작성합니다. 후속 시도에서는 먼저 보류중인 마이그레이션을 확인하고 적절하게 경고하므로 db : test : prepare를 먼저 실행하는 것이 좋습니다.

-http : //guides.rubyonrails.org/testing.html

기본적으로 데이터베이스 복제를 처리하므로 테스트 데이터베이스를 업데이트하기 위해 테스트에 대해 마이그레이션을 실행할 필요가 없습니다.


구체적으로 rake db:test:prepare다음을 수행합니다.

  • 보류중인 마이그레이션을 확인하고
  • 테스트 스키마를로드

즉, db/schema.rb프로젝트에 존재하지 않은 마이그레이션이 있는지 판별하기 위해 파일을 찾습니다 . 미해결 마이그레이션이 없다고 가정하면 데이터베이스를 비우고 db/schema.rb파일 내용에 따라 다시로드 합니다.


레이크 dB : 테스트 : 준비 같은 PG 문제에 대한 좋은 솔루션 .

"PG :: UndefinedTable : ERROR : relation does not exist"(정확한 Rails 이름 지정 및 규칙 사용) rake db:migrate RAILS_ENV=production

예를 들어, 여기서 논의 된 버그에 대한 테스트 데이터베이스를 작성할 수없는 경우 : "PG 정의 할 수없는 오류 관계 사용자가 존재하지 않습니다."

이 오류 모든 "PG :: UndefinedTable : ERROR : 관계 xxxxx가 없습니다"오류

참고 URL : https://stackoverflow.com/questions/15169894/what-does-rake-dbtestprepare-actually-do

반응형