2010-07-29 5 views
2

레일즈 통합 테스트를 설정하는 동안 레거시 데이터베이스를 준비하기 위해 일부 사용자 정의 SQL을 실행하려고합니다 (예 : 테이블을 생성하고 필요한 뷰를 생성하는 등). 내 schema.rb의 일부가 아닙니다 (해당 스키마의 마이그레이션도 존재하지 않습니다).Rails 통합 테스트를 준비하기 위해 커스텀 SQL을 실행합니다.

그렇게하는 데 유용한 모범 사례가 있습니까? 인터넷 검색은 지금까지 매우 계몽 적이 지 않다 ;-)

마이그레이션이없는 이유는 개발 및 생산에있어 기존 데이터베이스가 이미 존재하기 때문입니다. RAILS_ENVRAILS_ENV=='test'에 대해서만 이러한 마이그레이션을 실행할 수있는 방법이 있다면 도움이 될 것입니다.

답변

0

Rails 환경을 명령 줄에서 Rake로 전달할 수 있습니다.

rake RAILS_ENV=test db:migrate 
+1

가 좋아, 내가 그 알고있다,하지만 어쩌면 내가 정말 뭔가를 분명 실종 : 어떻게에만 테스트에서 실행되는 마이그레이션을 선언 할 예를 들어 만 수행 테스트 환경에 대한 마이그레이션을 실행 환경? 동일한 내용이 schema.rb에도 적용됩니다. 필자는 추악한'RAILS_ENV == 'test'' 조건문을 넣을 수는 있지만 좀 더 우아한 (선언적) 방법이 있기를 바랍니다. –

관련 문제