2012-05-09 2 views
3

datamapper를 사용하면 기존 데이터베이스 스키마에서 모델을 생성 할 수 있습니까? 따라서 마이그레이션을 역으로 수행하면 모델을 가져 와서 SQL을 생성합니다. 필자가 원하는 것은 데이터베이스 스키마가 모델을 생성하는 것입니다.기존 데이터베이스에서 datama 모델 생성

답변

1

를 확인하려고합니다.

기존 데이터베이스 스키마를 반영하는 DataMapper 모델에 대한 코드는 생성되지 않지만 해당 속성 액세스 방법은 자동으로 사용할 수 있습니다 (당연히이 플러그인을 계속 사용하는 한).

require 'data_mapper' 
require 'dm-is-reflective' 

DataMapper.setup(:default, "postgres://user:[email protected]/db") 

class Table 
    include DataMapper::Resource 

    is :reflective #activate dm-is-reflective 

    reflect #reflects eeach property. You can be more specific (look at plugin documentation) 
end 

DataMapper.finalize 

#Even if no field is defined, all of them are accessible 
entry = Table.first(nil, {:id => 469}) 
print entry.anotherField 
2

는 지금까지 최고의 솔루션이 dm-is-reflective plugin: https://github.com/godfat/dm-is-reflective를 사용하는 것을 발견, 마지막으로 https://github.com/yogo/dm-reflection 또는 포크의 ..

+0

감사 @TomMeinIschmidt 귀하의 답변 : 여기

사용의 예입니다. 나는 공식 저장소 인 Yogo 포크를 가리 키도록 답변을 업데이트했습니다. 하지만 나는 그것을 시도한 행운을 보지 못했습니다. 'dm-reflection '은 꽤 죽었습니다. Yogo 저장소에는'DataMapper 1.0 '으로 작업 할 것으로 예상되는 지점이 있지만 적어도 저에게는 작동하지 않습니다. 설치가 작동하지 않았지만 해결했지만 여전히 작동하지 않았습니다. 나는 그것이 깨진 의존성을 가지고 있다고 생각한다. 나는 지금 내가 게시 한 다른 해결책을 발견했다. –