데이터베이스를 파괴하지 못하도록 예외가 throw됩니다. 되돌릴 수없는 경우라면 그럴 수 있습니다. 귀하의 #down
는 다음과 같이 수 :
def down
raise ActiveRecord::IrreversibleMigration, "Explain why its irreversable!"
end
가 명확 irreversable 마이그레이션에 대해 통지하고 그 뒤에 이유 :
이
편집 설명 다른 사람에게 두통을 많이 절약 할 수
: 내가이 확신 할 수 없습니다를 Rails 3.2.3의 동작. #down
없이 몇 가지 마이그레이션을 만들었으며 exceptino도 제기되지 않았습니다. 어쩌면 당신의 코드에서 뭔가를 보여 주었을 것입니다.
EDIT 2 : 위/아래 방법을 사용할 때 요령을 되풀이하여 설명하면 ActiveRecord::IrreversibleMigration
을 올릴 책임이 있습니다. 다른 경우에는 아무 것도 일어나지 않을 것입니다 (#down
은 AR에 정의 된대로 nil을 반환합니다). #change
을 사용할 때 동작이 다릅니다. 경우에 따라 여기에 정의 된 #inverse
에 의해 언급 된 예외가 발생할 수 있습니다. https://github.com/rails/rails/blob/565bfb9cd49285ebaa170141b4996c22ba81de43/activerecord/lib/active_record/migration/command_recorder.rb#L39 이는 예상되는 동작입니다.
,하지만 심지어 어떤 사람들은 질문에 대한 인터넷 검색 여기에 상륙 불구하고, 답변을받을 자격이
@SergioTulentsev 사실 ) – Ernest
덕분에, 나는 :) – Indigon