나는 여러 가지 마이그레이션을 만들고 있는데, 그 중 일부는 표준 "create table"또는 "modify table"마이그레이션이며, 일부는 데이터를 수정합니다. 나는 라, 데이터를 수정하는 내 실제 액티브 모델을 사용하고 있습니다 :ActiveRecord가 클래스를 다시로드하도록하려면 어떻게해야합니까?
Blog.all.each do |blog|
update_some_blog_attributes_to_match_new_schema
end
문제는 내가 블로그 클래스를로드하는 경우, 다음, 다음, 테이블을 수정하여 다시 블로그 클래스를 사용한다는 것입니다, 모델이 있습니다 이전 테이블 정의를 사용하고 새 테이블에 저장할 수 없습니다. 클래스와 속성 정의를 다시로드하여 재사용 할 수있는 방법이 있습니까?
관계가있는 모델을주의하십시오. 'class Blog; belongs_to 소유자; end'를 사용한다면 Blog 이외에'Owner.reset_column_information'이 필요할 수도 있습니다. –
모든 열을 재설정하십시오! 'ActiveRecord :: Base.descendants.each {| c | c.reset_column_information}' – zm1th
자손에 대한 호출 앞에'Rails.application.eager_load!'를 던져서 자동로드되지 않는 모델의 문제를 해결합니다. – elju