2012-03-07 1 views
0

저는이 문제에 대한 해결책을 찾기 위해 꽤 많이 조사했습니다 (그리고 원숭이 패치를 시도했습니다).DataMapper, Rails 3.1 클래스 저장소에서 마이 그 레이션을 건너 뛰려면 어떻게해야합니까?

나는 DataMapper :: Resource가 포함 된 클래스에서 마이그레이션이 실행되는 것을 어떻게 막을 수 있습니까?

내 Rails 앱에는 기본 클래스가 아닌 다른 저장소에 연결하는 몇 가지 클래스가 있습니다. 그래서 그들은 본질적으로 읽기 전용입니다. 나는 레이크 작업에서 발생하는 auto_migrations에서 제외하려고합니다. 이렇게하면 마이그레이션하려고 시도해서는 안되는 데이터베이스에서 잘못된 동작을 유발하지 않도록 안심할 수 있습니다. (사용자 권한이 잘못되어 IMO가 적절한 형태가되어 DBA가 여기에있는 데이터베이스를 유지 관리합니다.)

이 동작은 기본 저장소와 별도의 저장소를 사용하는 몇 가지 모델에서만 발생합니다. 따라서 기본 저장소를 사용하는 클래스의 마이그레이션은 여전히 ​​필요합니다.

나는 이것이 기분이 상상을 초월하는 것보다 훨씬 쉬울 것이라고 생각하지만 나는 DM 커뮤니티에 그것을 던지고있다.

도움을 주시면 감사하겠습니다.

답변

0

추한 솔루션?

klass = ToProtect 
noop = proc {|*|} 
DataMapper::Migrations::Model.instance_methods.each do |meth| 
    klass.define_method(meth, &noop) 
end