2011-08-22 2 views
0

여기에 무슨 일이 일어 났습니까? 필자는 Message라는 모델을 사용 했었지만 이름을 바꾸려면 테이블에서 Message로 테이블의 이름을 바꾸는 마이그레이션을 만들었습니다. 나중에 해당 테이블에 추가 된 마이그레이션이있었습니다.모델 마이 그 레이션이 실패하여 더 이상 db를 실행할 수 없습니다. 생성

db : migrate라는 용어를 사용하면 기존 데이터베이스를 그대로 사용할 수 있습니다. 지금은 제가 DB를 수행 할 때 것으로 나타났습니다 : 레일 메시지를 생성로 메시지 내가 얻을 수있는 필드를 추가로 전환 한 후 때, 실패 DB를 신선한를 만들 만들 :

uninitialized constant AddActiveMessageIdToWalls::Message 

나는 문제가 생각 또한 모든 컨트롤러 & 모델을 메시지에서 스레드로 이름을 바꾸 었으며 마이그레이션 할 때 마이그레이션 할 때 모델을 찾을 수 없습니까? 그게 맞는 것 같니?

레일스 세계에서 어떻게 처리할까요? 감사합니다.

답변

3

나는 이것을 피하기 위해 db/schema.rb를 업데이트하고 싶습니다. 그래서 새로운 환경에서 db를 생성해야 할 때 rake db:createrake db:schema:load을 수행하면됩니다. 마이그레이션은 필요하지 않습니다.

+0

단지 추가 정보 : schema.rb가 좋지만 데이터 조작없이 마이그레이션을 수행하면 (레이크 작업이나 다른 종류의 스크립트로 수행해야한다고 생각하는) 결코 문제가 발생하지 않으며 스키마는 쓸데없는 것 ;-) [여기에 대한 게시물] (http://www.saturnflyer.com/blog/jim/2010/09/14/always-check-in-schema-rb/). –

0

가장 쉬운 해결책은 이전의 마이그레이션에서 빈 메시지 < ActiveRecord :: Base 하위 클래스를 추가하기 만하면됩니다.

... migration file ... 
class Message < ActiveRecord::Base;end