2012-05-09 9 views
3

datamapperを使用すると、既存のデータベーススキーマからモデルを生成できますか?したがって、マイグレーションの逆を行うには、モデルをとり、SQLを生成します。私が望むのは、モデルを生成するデータベーススキーマです。既存のデータベースからdatamaモデルを生成

答えて

1

... https://github.com/yogo/dm-reflectionまたはそのフォークのいずれかをチェックしてみてください、私は今まで、最善の解決策はdm-is-reflective plugin: https://github.com/godfat/dm-is-reflectiveを使用することであることがわかりました。

既存のデータベーススキーマを反映したDataMapperモデルのコードは生成されませんが、そのプロパティアクセスメソッドは自動的に使用できます(このプラグインを使用し続ける限り)。ここで

は使用の例である:あなたの答えのために@TomMeinIschmidt

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

で最後

+0

感謝。私は正式なリポジトリであるYogoフォークを指すように答えを更新しました。しかし、私はそれを試して幸運を持っていない。 'dm-reflection'はかなり死んでいます。 Yogoリポジトリには、 'DataMapper 1.0 'で動作するはずのブランチがありますが、少なくとも私にとっては動作しませんでした。そのインストールは機能しませんでしたが、私はそれを解決しましたが、まだ動作しませんでした。私はそれにいくつかの壊れた依存関係があると思う。私は今すぐ投稿する別の解決策を見つけました。 –

関連する問題