3

datamapperを使用して、既存のデータベーススキーマからモデルを生成することは可能ですか?したがって、移行の逆を行うには、モデルを取得してSQLを生成します。私が欲しいのは、データベーススキーマがモデルを生成することです。

4

2 に答える 2

2

https://github.com/yogo/dm-reflectionまたはそのフォークのいずれかを確認してみてください..

于 2012-05-09T23:35:45.227 に答える
1

ついに、これまでのところ最善の解決策はdm-is-reflectiveプラグインを使用することであることがわかりました:https://github.com/godfat/dm-is-reflective

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

使用例を次に示します。

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

DataMapper.setup(:default, "postgres://user:pwd@localhost/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
于 2012-05-14T11:57:04.617 に答える